2012-01-07 12 views
7

का उपयोग कर दिन से दिन प्राप्त करना मेरे पास इस प्रारूप "YYYY/MM/DD" में एक तिथि है। अब मैं इस प्रारूप से दिन प्राप्त करना चाहता हूं। जावास्क्रिप्ट या jquery का उपयोग करके मैं इसे कैसे प्राप्त कर सकता हूं? एक तरीका यहjquery/javascript

$(document).ready(function() { 

var d = new Date(); 

alert(d.getDay()); 
}); 

है लेकिन समस्या यह है कि यहाँ घ चर इस प्रारूप

Sat Jan 07 2012 18:16:57 GMT+0200 (FLE Standard Time) 

कैसे मैं ऊपर प्रारूप में तारीख से दिन प्राप्त कर सकते हैं में दिनांक है?


यहाँ मेरी समारोह की तरह

function dayOfWeek(d) { 
      var dayNames = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Sunday'); 
      var currentDate = Math.round(+new Date(d)/1000); 
      var nData = new Date(currentDate); 
      //alert(nData); 
      //alert(nData.getDay()); 
      //var day = d.split("-")[2]; 
      //var t = day.replace("0",""); 
      //alert(t); 
      return dayNames[nData.getDay()]; 
     } 

क्या मैं कर रहा हूँ मैं "YYYY-MM-DD" प्रारूप में तिथि गुजर रहा है देखने के लिए कैसे है और यह यूनिक्स टाइमस्टैम्प को उस तारीख धर्मान्तरित और फिर मैं दिन प्राप्त करें और फिर दिन या रविवार के रूप में दिन वापस लौटें। लेकिन यहां यह केवल शुक्रवार को लौटाता है जो गलत है। जब मैं दिन में बदलता हूं तो उसे उसी दिन सरणी में वापस जाना चाहिए।

+0

कैसे फ़ॉर्मेट करने के लिए देखने के लिए यहां पढ़ दिनांक समय http://stackoverflow.com/questions/4802190/how-do-i-format-date-in-jquery-datetimepicker देख Skilldrick जवाब –

+0

मैं अपनी पोस्ट अद्यतन कृपया इसे जाँचे। धन्यवाद – 2619

+0

मेरा जवाब देखें ... पीएस: आप शनिवार को भूल गए: पी –

उत्तर

5

Date Object में toString विधि है जो आपके द्वारा वर्णित प्रारूप में यूटीसी दिनांक स्ट्रिंग आउटपुट करती है। हालांकि Date Object में कई अन्य विधियां भी हैं।

महीने के दिन (1-31) प्राप्त करने के लिए आप getDate विधि का उपयोग करें:

d = new Date().getDate() ; 

आपका दिनांक स्ट्रिंग किसी ऐसे स्वरूप Date स्ट्रिंग निर्माता द्वारा मान्यता प्राप्त नहीं किया जाएगा है । अपनी वापसी मूल्य के लिए इस लाइन का परीक्षण करें:

var nData = new Date(currentDate) ; 

यह वापस आ जाएगी:

"invalid Date" 

यदि आपका दिनांक स्वरूप (d) यह वह जगह है,

"dd-mm-yyyy" 

ऐसा करते हैं,

var a = d.split("-") ; 
var date = new Date(a[2], (a[1] - 1), a[0]) ; 

यह होना चाहिए नेट आप एक काम कर रहे हैं DateObject। या इस post में वर्णित jQuery के लिए डेटपिकर प्लग-इन का उपयोग करें।


Link to MDN documentation

+0

कृपया अपनी पोस्ट पर हस्ताक्षर नहीं करें। –

+0

लगभग 2 वर्षों के बाद आप निश्चित रूप से http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts पढ़ चुके हैं ?! बस जवाब लिखें। :) –

+0

[व्यवस्थापक और मोड "अनुरोध" का समर्थन करते हैं] (http://stackoverflow.com/questions/8616719/php-ajax-call-not-showing-ie7-or-8#comment-10695989), और [ एफएक्यू बहुत ज्यादा इसे विनियमन बनाता है] (http://stackoverflow.com/faq#signatures)। मेटा पर चर्चा का "अनुरोध" हिस्सा इस बहस से अधिक है कि मुझे आपके हस्ताक्षर को संपादित करने पर परेशान होना चाहिए था या नहीं। –

0

"प्रारूप" आप एक नियमित स्ट्रिंग के बारे में बात कर रहे हैं है?

तो आप नए अपडेट किए गए कोड को के बारे में इस

var theDay = theDate.split("/")[2]; 
+0

कृपया मेरी अद्यतन पोस्ट देखें यह मेरा प्रश्न अधिक स्पष्ट कर देगा। मैं सप्ताह का दिन प्राप्त करना चाहता हूं और फिर रविवार, सोमवार प्रारूप में इसे प्रदर्शित करना चाहता हूं। – 2619

1

कर सकते हैं:

$(function() 
    { 
$("a").click(function() { 
      var dayNames = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'); 
      var nData = new Date(); 
      //alert(nData); 
      //alert(nData.getDay()); 
      //var day = d.split("-")[2]; 
      //var t = day.replace("0",""); 
      //alert(t); 
      alert(dayNames[nData.getDay()]); 
     }); 
}); 

ऊपर कोड एक उदाहरण है। अपनी जरूरतों के साथ http://jsfiddle.net/qgDHB/ संपादित करें।

मैंने कुछ लाइनों को हटा दिया जिनकी आवश्यकता नहीं है।

2

स्ट्रिंग रूपांतरणों के लिए अंतर्निहित तिथि का उपयोग करने के बजाय, जो कार्यान्वयन-निर्भर हैं, और तर्क को स्वयं कोडिंग करने के बजाय, उपयुक्त लाइब्रेरी का उपयोग करना सबसे अच्छा है। यहाँ Globalize.js का उपयोग कर यह कर में से एक आसान तरीका है:

function dayOfWeek(s) { 
    var d = Globalize.parseDate(s, 'yyyy/M/d'); 
    if(d == null) { 
    return null; 
    } else { 
    return Globalize.format(d, 'dddd'); 
    } 
} 

इस प्रारूप YYYY में इनपुट को पार्स होगा/MM/DD (स्पष्ट संशोधनों के साथ करता है, तो आपकी वास्तविक YYYY-MM-DD), अधिक वास्तव में तो यह है कि वर्ष 4 अंकों (yyyy) में है और माह (एम) और दिन (डी) 1 या 2 अंकों में हो सकता है (यदि आप 2 अंकों को लागू करना चाहते हैं तो इसके बजाय एमएम और डीडी का उपयोग करें)। फिर यह तारीख लिखता है ताकि सप्ताह का दिन केवल एक शब्द (डीडीडीडी) के रूप में लिखा जा सके। यदि इनपुट निर्दिष्ट प्रारूप का नहीं है, तो फ़ंक्शन शून्य हो जाता है, और आपको निश्चित रूप से इस मामले के लिए कुछ योजनाबद्ध त्रुटि प्रबंधन करना चाहिए।

अतिरिक्त बोनस के रूप में, कोड वैश्वीकरण-तैयार होगा: यदि आपको कभी भी किसी अन्य भाषा में नाम बनाने के लिए कोड को संशोधित करने की आवश्यकता है, तो आप केवल एक फ़ंक्शन आमंत्रण जोड़ते हैं जो Globalize.js के लिए लोकेल (भाषा) सेट करता है ।

1
var d=new Date(); 
var weekday=new Array(7); 
weekday[0]="Sunday"; 
weekday[1]="Monday"; 
weekday[2]="Tuesday"; 
weekday[3]="Wednesday"; 
weekday[4]="Thursday"; 
weekday[5]="Friday"; 
weekday[6]="Saturday"; 

var n = weekday[d.getDay()]; 

check

0

वैश्वीकृत से प्रेरित होकर ऊपर का जवाब है, तो यहां Sugar.js पुस्तकालय में यह करने के लिए है:

<script src="sugar.min.js"></script> 
... 
var test = Date.create(d); 
console.log(test.format("{Weekday}")); 

d स्ट्रिंग या सेकेंड सहित विभिन्न प्रारूपों (का भार में हो सकता है -सेन्स -1970 या जेएस डेट ऑब्जेक्ट) और आउटपुट प्रारूप विकल्प समान रूप से व्यापक हैं।

Sugar.js 17.9K minified और gzipped है (जिसमें यह अन्य सभी सुविधाएं शामिल हैं, न केवल दिनांक सामग्री); यह Moment.js के आकार के लगभग दोगुना है, जिस विकल्प पर मैं विचार कर रहा था। लेकिन Moment.js के पास {dow} या {weekday} स्वरूपों के बराबर नहीं है।