wake-up-neo.com

Verwenden von Moment.js zum Ermitteln eines bestimmten Tages des aktuellen Datums der Woche

Ermitteln des Datums eines bestimmten Tages der aktuellen Woche mit Moment.js


Es gibt viele Möglichkeiten, Datumsangaben in Javascript zu ändern. Ich habe nach dem einfachsten und einfachsten Weg gesucht, dies ohne langen, hässlichen Code zu tun, also zeigte mir jemand Moment.js

Ich möchte das aktuelle Datum verwenden, um mit dieser Bibliothek das Datum eines bestimmten Tages der aktuellen Woche zu ermitteln. Mein bisheriger Versuch besteht darin, die Differenz zwischen der aktuellen Tagesnummer (Tage 0-6) zu nehmen und zu prüfen, wie viele Tage zwischen Montag und Montag (Tag 1) liegen, was überhaupt nicht stimmt.

Hier ist meine Geige.

Hier ist mein Code:

var now = moment();

var day = now.day();

var week = [['sunday',0],['monday',1],['tuesday',2],['wednesday',3],['thursday',4],['friday',5],['saturday',6]];

var monday = moment().day(-(week[1][1] - day));//today minus the difference between monday and today

$("#console").text(monday);

//I need to know the date of the current week's monday
//I need to know the date of the current week's friday

Wie kann ich das machen? Meine Methode kann eine schreckliche Methode sein, um dies zu erreichen, oder sie ist etwas nahe. Ich möchte jedoch, dass die Lösung ordentlich, klein, dynamisch und einfach ist, so wie der gesamte Code sein sollte. 

Ich würde es vorziehen, keine native JS-Datumsfunktion zu verwenden, die in jeder Situation, die ich gesehen habe, hässlichen, unordentlichen Code erzeugt.

27
user2700923

dieser woche sonntag

moment().startOf('week')

diese woche montag

moment().startOf('isoweek')

samstag dieser Woche

moment().endOf('week')

unterschied zwischen dem aktuellen Tag und dem Sonntag

moment().diff(moment().startOf('week'),'days')

der Mittwoch dieser Woche

moment().startOf('week').add('days', 3)
57
wayne

Es ist nicht mehr möglich, nur eine Zeichenfolge zu verwenden (z. B. 'isoweek'), wir müssen sie so verwenden:

import * as moment from 'moment';
import { unitOfTime } from 'moment';

moment().startOf('isoweek' as unitOfTime.StartOf);
0
IngoB

Vielleicht ein bisschen zu spät zur Party, aber hier ist der richtige Weg, wie in der Dokumentation .

moment().day(1); // Monday in the current week

Auch wenn in Ihrem Gebietsschema die Woche mit Montag beginnt und Sie ein lokales Ergebnis erzielen möchten, können Sie moment().weekday(0) verwenden. Hier ist die Dokumentation für die moment().weekday(dayNumber) Methode.

0