2013-04-18 8 views
15

Sto lavorando con Moment.js per la mia prima volta. Ho provato a recuperare la data del primo giorno della settimana, e in Europa questo è normalmente il lunedì. Qualunque cosa faccia, ottengo la domenica come risultato del primo giorno della settimana.Moment.js primo giorno della settimana errato

Ho provato a impostare lingue diverse (locali o globali), ma senza risultato. Uso il file langs.min.js dallo moment.js github page. Il file di lingua di "it-IT" e "fr" ha la riga di codice:

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

quindi vorrei ottenere la data di lunedi quando chiedo per il primo giorno della settimana giusta? Continuo a ricevere domenica come uscita.

// 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 è francese per Domenica .. Come si vede, moment.js possono utilizzare il file di lingua con successo, ma non utilizza il giorno della configurazione settimana

JSfiddle con moment.js e Langs. JS per testare: JSFiddle

edit: posso ottenere la data di Lunedi, invece di Domenica con day(1) invece di startOf('week'). Ma usando day(0) ho ancora domenica come risultato. Perché non è il lunedì il primo giorno della settimana, come configurato nei file di lingua.

risposta

29

Per chi incontrato questa domanda negli ultimi tempi, un momento all'altro sostenere lang metodo per impostare un'impostazione specifica locale.

Impostazione prima settimana da Lunedi:

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

Questa dovrebbe essere la risposta accettata ora. – ostrgard

+2

come da 2.8.1, dovresti usare 'moment.locale'. http://momentjs.com/docs/#/i18n/changing-locale/ – csvan

+1

'' momento(). settimana() '' questo non funziona quando questo è fatto ?? – Sahan

-2

sono riuscito a farlo funzionare. ho usato il codice qui sotto:

$(#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 
     } 
});