2013-04-18 5 views
15

Ich arbeite mit Moment.js zum ersten Mal. Ich habe versucht, das Datum des ersten Tages der Woche zu finden, und in Europa ist das normalerweise Montag. Was auch immer ich mache, ich bekomme Sonntag als Ergebnis des ersten Tages der Woche.Moment.js erster Tag der Woche falsch

Ich habe versucht, verschiedene Sprachen (lokal oder global) einzurichten, aber ohne Erfolg. Ich benutze die Datei langs.min.js von moment.js github page. Die Sprachdatei von „de-de“ und "fr" hat die Codezeile:

dow : 1, // Monday is the first day of the week. 

So würde ich das Datum von Montag, wenn ich für den ersten Tag der Woche direkt fragen? Ich bekomme Sonntag als Ausgabe.

// Create moment object 
var localLang = moment(); 

// Set language to french 
localLang.lang('fr'); 

// Test language 
localLang.lang(); // Output: fr 

// Retrieve first day of the week and format it 
var dow = localLang.startOf('week').format('dddd DD-MM-YYYY'); // Output: dimanche 14-04-2013 

Dimanche ist für Sonntag französisch .. Wie Sie sehen, moment.js die Sprachdatei erfolgreich verwenden können, aber verwendet nicht den Tag der Woche Konfiguration

JSfiddle mit moment.js und langs. js zu testen: JSFiddle

edit: ich das Datum vom Montag statt Sonntag mit day(1) statt startOf('week') bekommen kann. Aber mit day(0) bekomme ich immer noch Sonntag als Ergebnis. Warum ist nicht Montag der erste Tag der Woche, wie in den Sprachdateien konfiguriert.

Antwort

29

Für alle, die in letzter Zeit über diese Frage kommen, Moment unterstützt nun lang Methode lokalspezifische Einstellung.

erste Woche einstellen Montag sein:

moment.lang('zh-cn', { 
    week : { 
     dow : 1 // Monday is the first day of the week 
    } 
}); 

var date = moment().weekday(0); // date now is the first day of the week, (i.e., Monday) 
+0

Dies sollte jetzt die akzeptierte Antwort sein. – ostrgard

+2

ab 2.8.1 sollten Sie 'moment.locale' verwenden. http://momentjs.com/docs/#/i18n/changing-locale/ – csvan

+1

'' moment(). week() '' das funktioniert nicht, wenn dies erledigt ist ?? – Sahan

-2

i es funktioniert geschaffen. i verwendet den Code unten:

$(#id_Of_Element).daterangepicker({ 
     weekStart: 2, 

     locale: { 
      customRangeLabel: 'Custom Range', 
      daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], 
      monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], 
      firstDay: 1 
     } 
});