2013-04-18 82 views
15

Tôi đang làm việc với Moment.js lần đầu tiên. Tôi đã cố gắng lấy lại ngày của ngày đầu tiên trong tuần, và ở châu Âu, đây là thứ hai bình thường. Bất cứ điều gì tôi làm, tôi nhận được chủ nhật là kết quả của ngày đầu tiên của tuần.Moment.js ngày đầu tiên của tuần không chính xác

Tôi đã cố gắng thiết lập các ngôn ngữ khác nhau (địa phương hoặc trên toàn cầu) nhưng không có kết quả. Tôi sử dụng tệp langs.min.js từ moment.js github page. Các tập tin ngôn ngữ của "en-gb" và "fr" có dòng mã:

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

Vì vậy, tôi sẽ nhận được ngày thứ hai khi tôi yêu cầu cho ngày đầu tiên của tuần phải không? Tôi tiếp tục nhận được chủ nhật là đầu ra.

// 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 là tiếng Pháp cho chủ nhật .. Như bạn thấy, moment.js có thể sử dụng các tập tin ngôn ngữ thành công nhưng không sử dụng ngày của cấu hình tuần

JSfiddle với moment.js và langs. js để kiểm tra: JSFiddle

chỉnh sửa: tôi có thể lấy ngày thứ hai thay vì chủ nhật với day(1) thay vì startOf('week'). Nhưng sử dụng day(0) Tôi vẫn nhận được chủ nhật như là một kết quả. Tại sao không phải thứ hai vào ngày đầu tiên của tuần, như được định cấu hình trong các tệp ngôn ngữ.

Trả lời

29

Đối với bất cứ ai đi qua câu hỏi này thời gian gần đây, thời điểm bây giờ hỗ trợ lang phương pháp để thiết lập cụ thể địa điểm.

Thiết tuần đầu tiên được Thứ hai:

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

Đây phải là câu trả lời được chấp nhận ngay bây giờ. – ostrgard

+2

từ 2.8.1, bạn nên sử dụng 'moment.locale'. http://momentjs.com/docs/#/i18n/changing-locale/ – csvan

+1

'' moment(). week() '' điều này không hoạt động khi việc này được thực hiện? – Sahan

-2

tôi quản lý để làm cho nó làm việc. tôi đã sử dụng mã bên dưới:

$(#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 
     } 
}); 
Các vấn đề liên quan