2010-12-09 15 views
35

मैं अभी भी इस पुस्तकालय के चारों ओर अपना सिर लपेट रहा हूं, लेकिन मैं समय से बाहर हूं बस spoiler अनुभाग पर छोड़ें और पूछें। दिए गए, मनमाने ढंग से मिलीसेकंद समय मूल्य (जैसा कि आपने .getTime() से दिया था), मैं वर्तमान मिनट, घंटा, दिन, सप्ताह का महीना, महीना, सप्ताह का सप्ताह, और उस विशिष्ट मिलीसेकंद का वर्ष कैसे प्राप्त करूं समय की?जावास्क्रिप्ट, समय और तिथि: किसी दिए गए मिलीसेकंद समय के वर्तमान मिनट, घंटे, दिन, सप्ताह, महीने, वर्ष प्राप्त करना

इसके अतिरिक्त, मैं किसी दिए गए महीने के दिनों की संख्या कैसे प्राप्त करूं? छलांग के वर्षों और अन्य सामानों के बारे में मुझे कुछ भी पता होना चाहिए?

+0

यह सब कल्पना में विस्तार से बताया है पाने के लिए एक और तरीका है। एक ऐसा अनुभाग है जो दिनांक विधियों का वर्णन करता है, और यहां तक ​​कि सार तत्वों का भी वर्णन करता है। –

उत्तर

58

चर नाम वर्णनात्मक होना चाहिए:

var date = new Date; 
date.setTime(result_from_Date_getTime); 

var seconds = date.getSeconds(); 
var minutes = date.getMinutes(); 
var hour = date.getHours(); 

var year = date.getFullYear(); 
var month = date.getMonth(); // beware: January = 0; February = 1, etc. 
var day = date.getDate(); 

var dayOfWeek = date.getDay(); // Sunday = 0, Monday = 1, etc. 
var milliSeconds = date.getMilliseconds(); 

दिए गए महीने के दिनों में परिवर्तन नहीं करते। एक लीप वर्ष में, फरवरी में 2 9 दिन हैं। से प्रेरित होकर http://www.javascriptkata.com/2007/05/24/how-to-know-if-its-a-leap-year/ (धन्यवाद पीटर बेली!)

पिछले कोड से लगातर:

var days_in_months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 
// for leap years, February has 29 days. Check whether 
// February, the 29th exists for the given year 
if((new Date(year, 1, 29)).getDate() == 29) days_in_month[1] = 29; 

एक साल के सप्ताह के प्राप्त करने के लिए कोई सीधा तरीका नहीं है। उस प्रश्न के उत्तर के लिए, Is there a way in javascript to create a date object using year & ISO week number?

+0

यह एक लीप वर्ष निर्धारित करने के लिए पूर्ण एल्गोरिदम नहीं है। – bobince

+0

विकिपीडिया को देखने के बाद इसे संपादित किया गया। ध्यान देने के लिए धन्यवाद। – Lekensteyn

+0

विचार का अधिकार, मुझे लगता है कि तर्क थोड़ा सा है हालांकि ... शायद 'वर्ष% 400 === 0 || (वर्ष% 4 === 0 && वर्ष% 100! == 0) '। – bobince

3

महीने में दिनों की संख्या के बारे में केवल स्थिर स्विच कमांड का उपयोग करें और if (year % 4 == 0) देखें, जिस स्थिति में फरवरी में 2 9 दिन होंगे।

मिनट, घंटे, दिन आदि:

var someMillisecondValue = 511111222127; 
var date = new Date(someMillisecondValue); 
var minute = date.getMinutes(); 
var hour = date.getHours(); 
var day = date.getDate(); 
var month = date.getMonth(); 
var year = date.getFullYear(); 
alert([minute, hour, day, month, year].join("\n")); 
+0

लीप वर्ष की जांच करने के लिए आपको 'if (((%% 4 == 0) && (वर्ष% 100! = 0) || (वर्ष% 400 == 0)) 'की जांच करनी होगी। यह परिभाषा है ग्रेगोरियन कैलेंडर –

1

साथ ही, मैं कैसे किसी दिए गए महीने के दिनों की संख्या को पुनः प्राप्त करते हैं? टाइमस्टैम्प/तिथि गणना मैं सलाह देते हैं के लिए सामान्य तौर पर

var y= 2010, m= 11;   // December 2010 - trap: months are 0-based in JS 

var next= Date.UTC(y, m+1); // timestamp of beginning of following month 
var end= new Date(next-1);  // date for last second of this month 
var lastday= end.getUTCDate(); // 31 

:

एक तरफ यह अपने आप की गणना (और फलस्वरूप प्राप्त करने के लिए लीप वर्ष अधिकार), आप एक तिथि गणना का उपयोग कर सकते यह करने के लिए से

की बजाय यूटीसी तिथि से टाइमस्टैंप प्राप्त करने के लिए , और Date.UTC की बजाय getUTCSeconds की तारीख की यूटीसी-आधारित विधियों का उपयोग करके, इसलिए आपको अजीब समय की असंतोष की संभावना के बारे में चिंता करने की आवश्यकता नहीं है, जहां टाइमज़ोन नियम बदलते हैं।

+0

यूटीसी काम करता है जब महीने दिसंबर (12 और ऊपर) चला जाता है? – Hamster

+0

हाँ, यह यूटीसी या स्थानीय समय में काम करता है।(ठीक है, जब तक कि स्थानीय समय में 1 जनवरी को टाइमज़ोन परिवर्तन नहीं होता है, इस मामले में स्थानीय समय गलत हो सकता है। मुझे किसी भी लोकेशंस के बारे में पता नहीं है जहां कभी हुआ है, लेकिन मैंने हमेशा संदेह किया है अजीब सामान जो स्थानीय टाइमज़ोन नियम उत्पन्न कर सकते हैं ...) – bobince

3

यहाँ तारीख

new Date().getDate()   // Get the day as a number (1-31) 
new Date().getDay()   // Get the weekday as a number (0-6) 
new Date().getFullYear()  // Get the four digit year (yyyy) 
new Date().getHours()   // Get the hour (0-23) 
new Date().getMilliseconds() // Get the milliseconds (0-999) 
new Date().getMinutes()  // Get the minutes (0-59) 
new Date().getMonth()   // Get the month (0-11) 
new Date().getSeconds()  // Get the seconds (0-59) 
new Date().getTime()   // Get the time (milliseconds since January 1, 1970) 
संबंधित मुद्दे