2014-09-18 12 views
10

Tự hỏi nếu có một cách để có được momentjs hoặc chỉ sử dụng javascript tinh khiết để tạo ra một mảng của hàng ngày trong tuần, và mỗi giờ trong một ngày để tôi không phải hardcode nó.Sử dụng thời điểm js để tạo một mảng với các ngày trong tuần và giờ trong ngày?

Vì vậy, thay vì bằng tay làm

weekArray = ["Monday", "Tuesday", "Wednesday" ....] 

Tôi đang tìm kiếm một cách để làm điều gì đó như

weekArray = moment.js(week) 

Ý tưởng tương tự cho lần trong ngày đặc biệt, vì vậy tôi có khả năng có thể sử dụng khác nhau định dạng.

Trả lời

29

Đối với các ngày trong tuần, bạn có thể sử dụng moment's weekdays method

weekArray = moment.weekdays() 
+2

Có thể thực hiện nó với một miền địa phương không? – ilyo

+1

@ilyo yes, ví dụ: moment.localeDate ('en'). các ngày trong tuần() –

0

Dưới đây là một đoạn nhỏ để có được những cái tên (bản địa đặc thù) của các ngày trong tuần từ Moment.js:

var weekdayNames = Array.apply(null, Array(7)).map(
    function (_, i) { 
     return moment(i, 'e').format('dddd'); 
    }); 
console.log(weekdayNames); 
// Array [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ] 

Nếu bạn muốn tuần để bắt đầu vào thứ hai, thay thế moment(i, 'e') với moment(i+1, 'e').

+1

Một cách ngắn hơn: 'để ngày = moment.weekdays(); days.push (days.shift()); moment.euweekdays = days; 'và sau đó truy cập nó với' moment.euweekdays' – user3743266

0

tôi sử dụng giải pháp này:

var defaultWeekdays = Array.apply(null, Array(7)).map(function (_, i) { 
    return moment(i, 'e').startOf('week').isoWeekday(i + 1).format('ddd'); 
}); 

tôi có kết quả:

["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] 

Bạn có thể Modify .format (string) để thay đổi định dạng ngày. Ví dụ 'dddd' sẽ hiển thị:

["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 

Kiểm tra Moment.js documentation cho định dạng cao cấp hơn

Các vấn đề liên quan