अगर मेरे पास एक समारोह में आने की तारीख है, तो मैं इसे सप्ताहांत का दिन कैसे बता सकता हूं?
अगर मेरे पास एक समारोह में आने की तारीख है, तो मैं इसे सप्ताहांत का दिन कैसे बता सकता हूं?
जवाबों:
var day = yourDateObject.getDay();
var isWeekend = (day === 6) || (day === 0); // 6 = Saturday, 0 = Sunday
d! = day:) मैं इसके बजाय इसे कॉल dayOfWeekकरूंगा, यह ओपी के लिए अधिक समझदार होगा।
getDayवर्तमान समय की सेटिंग्स के अनुसार हमेशा रविवार के लिए 0 और शनिवार आदि के लिए 6 वापस करना चाहिए। (और फिर यह ओपी पर निर्भर है कि वे अपनी आवश्यकताओं के अनुसार "सप्ताहांत" का फैसला करें।)
===बजाय ==करते हैं। महत्वपूर्ण नहीं है, लेकिन सिर्फ सबसे अच्छा अभ्यास।
var isWeekend = yourDateObject.getDay()%6==0;
.getDay()दूसरे मूल्य में परिणाम होगा या अगर की परिभाषा isWeekendगलत होगी। यदि इसके चर के बारे में, मुझे परवाह नहीं है। मुझे लगता है कि एक 0 हमेशा रविवार होगा, इसलिए मेरे लिए यह ठीक है।
छोटा एवं सुन्दर।
var isWeekend = ([0,6].indexOf(new Date().getDay()) != -1);
मैंने सही उत्तर देने की कोशिश की और इसने कुछ स्थानों के लिए काम किया लेकिन सभी के लिए नहीं:
क्षणों में डॉक्स: कार्यदिवस लौटाया गया अंक स्थानीय प्रारंभिक वीकडे पर निर्भर करता है, इसलिए सोमवार = 0 | रविवार = 6
इसलिए मैं वास्तविक DayString ('रविवार') की जाँच करने के लिए तर्क को बदलता हूँ
const weekday = momentObject.format('dddd'); // Monday ... Sunday
const isWeekend = weekday === 'Sunday' || weekday === 'Saturday';
इस तरह आप लोकाले स्वतंत्र हैं।
Some countries have adopted a one-day weekend, i.e. either Sunday only (in seven countries), Friday only (in Djibouti, Iran, Palestine and Somalia), or Saturday only (in Nepal).
अद्यतन 2020
अब इसे प्राप्त करने के कई तरीके हैं।
1) day0-6 से दिन प्राप्त करने की विधि का उपयोग करना :
const day = yourDateObject.day();
// or const day = yourDateObject.get('day');
const isWeekend = (day === 6 || day === 0); // 6 = Saturday, 0 = Sunday
2) isoWeekday1-7 से दिन प्राप्त करने की विधि का उपयोग करना :
const day = yourDateObject.isoWeekday();
// or const day = yourDateObject.get('isoWeekday');
const isWeekend = (day === 6 || day === 7); // 6 = Saturday, 7 = Sunday
.isoWeekday()एक क्षण है। जेएस विधि, लेकिन निर्दिष्ट नहीं।
मैंने यहां अधिकांश उत्तरों का परीक्षण किया है और टाइमज़ोन, लोकेल के साथ हमेशा कुछ समस्या होती है, या सप्ताह की शुरुआत रविवार या सोमवार को होती है।
नीचे एक है जो मुझे लगता है कि अधिक सुरक्षित है, क्योंकि यह कार्यदिवस के नाम और एन लोकेल पर निर्भर करता है ।
let startDate = start.clone(),
endDate = end.clone();
let days = 0;
do {
const weekday = startDate.locale('en').format('dddd'); // Monday ... Sunday
if (weekday !== 'Sunday' && weekday !== 'Saturday') days++;
} while (startDate.add(1, 'days').diff(endDate) <= 0);
return days;
वर्तमान संस्करण में, आपको उपयोग करना चाहिए
var day = yourDateObject.day();
var isWeekend = (day === 6) || (day === 0); // 6 = Saturday, 0 = Sunday
दिन प्राप्त करने के लिए दिनांक ऑब्जेक्ट पर .getDay () विधि का उपयोग करें।
जांचें कि क्या यह 6 (शनिवार) या 0 (रविवार) है
var givenDate = new Date('2020-07-11');
var day = givenDate.getDay();
var isWeekend = (day === 6) || (day === 0) ? 'It's weekend': 'It's working day';
console.log(isWeekend);
निम्नलिखित एक बूलियन को आउटपुट करता है कि क्या कोई दिनांक ऑब्जेक्ट « खुलने » घंटे के दौरान है , सप्ताहांत के दिनों को छोड़कर, और ग्राहक के समय क्षेत्र ऑफसेट को ध्यान में रखते हुए, रात के बीच 23H00और रात के घंटों को छोड़कर 9H00।
बेशक यह छुट्टियों जैसे विशेष मामलों को संभालता नहीं है, लेकिन दूर तक नहीं;)
let t = new Date(Date.now()) // Example Date object
let zoneshift = t.getTimezoneOffset() / 60
let isopen = ([0,6].indexOf(t.getUTCDay()) === -1) && (23 + zoneshift < t.getUTCHours() === t.getUTCHours() < 9 + zoneshift)
// Are we open?
console.log(isopen)
<b>We are open all days between 9am and 11pm.<br>
Closing the weekend.</b><br><hr>
Are we open now?
वैकल्पिक रूप से, सप्ताह का दिन स्थानीय मानव स्ट्रिंग के रूप में प्राप्त करने के लिए , हम उपयोग कर सकते हैं:
let t = new Date(Date.now()) // Example Date object
console.log(
new Intl.DateTimeFormat('en-US', { weekday: 'long'}).format(t) ,
new Intl.DateTimeFormat('fr-FR', { weekday: 'long'}).format(t) ,
new Intl.DateTimeFormat('ru-RU', { weekday: 'long'}).format(t)
)
खबरदार new Intl.DateTimeFormatछोरों के अंदर धीमा है, एक साधारण साहचर्य सरणी तेजी से चलती है:
console.log(
["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][new Date(Date.now()).getDay()]
)
बस modulo से पहले 1 जोड़ें
var isWeekend = (yourDateObject.getDay() + 1) % 7 == 0;