मैं एक कैलेंडर बना रहा हूं जहां मैं एक सारणीबद्ध प्रारूप में हफ्तों का प्रिंट आउट करता हूं। एक आवश्यकता यह है कि मैं कुछ उपयोगकर्ता विकल्प के अनुसार सोमवार या रविवार को सप्ताह शुरू करने में सक्षम हूं। मैं पल की isoWeekday विधि का उपयोग करके एक कठिन समय बिता रहा हूं ।
// Start of some date range. Can be any day of the week.
var startOfPeriod = moment("2013-06-23T00:00:00"),
// We begin on the start of the first week.
// Mon Tues Wed Thur Fri Sat Sun
// 20 21 22 23 24 25 26
begin = moment(startOfPeriod).isoWeekday(1); // will pull from user setting
console.log(begin.isoWeekday()); // 1 - all good
// Let's get the beginning of this first week, respecting the isoWeekday
begin.startOf('week');
console.log(begin.isoWeekday()); // 7 - what happened ???
// Get column headers
for (var i=0; i<7; i++) {
console.log(begin.format('ddd')); // I want Monday first!
begin.add('d', 1);
}
EDIT मैंने गलत समझा कि isoWeekday
वास्तव में क्या कर रहा था। मैंने सोचा कि यह "सप्ताह का कौन सा दिन है सप्ताह का पहला दिन" चर (जो मौजूद नहीं है)। यह वास्तव में क्या करता है, बस सप्ताह के दिन को बदलता है, ठीक वैसे ही moment.weekday()
, लेकिन 0-6 के बजाय 1-7 रेंज का उपयोग करता है।
startOf('week')
वर्तमान स्थान पर निर्भर करता है जहां रविवार स्पष्ट रूप से आपके मामले में सप्ताह की शुरुआत को चिह्नित करता है।startOf('iweek')
सप्ताह की आईएसओ शुरुआत मिलेगी, जो सोमवार है। लेकिन आप सही हैं, मुझे आधिकारिक साइट पर कोई दस्तावेज नहीं मिला ...