2013-12-13 5 views
6

में कैसे परिवर्तित कर सकता हूं मैं इस प्रारूप को "Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)" को जावास्क्रिप्ट में 2014-01-31 में कैसे परिवर्तित कर सकता हूं ?? मैं इसे सरल होना चाहिए पता है, लेकिन मैं गूगलमैं इस जटिल दिनांक प्रारूप को जावास्क्रिप्ट

से
+0

यह एक 'Date' वस्तु है? उपलब्ध विधियों पर एक नज़र डालें: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date –

उत्तर

9
var d = new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)"); 
var str = $.datepicker.formatDate('yy-mm-dd', d); 
alert(str); 

http://jsfiddle.net/3tNN8/

यह jQuery UI की आवश्यकता है।

+0

मैट ... बात यह है कि यह एक वस्तु है .. स्ट्रिंग – user3097566

+0

@ user3097566 उपरोक्त कोड में 'd' क्या है। इसे अपनी 'तिथि' ऑब्जेक्ट से बदलें। – Matt

+0

@ मैट- आप गैर-मानक व्यवहार (गैर-मानक दिनांक स्ट्रिंग को पार्स करना) पर भरोसा कर रहे हैं, आपका कोड कुछ ब्राउज़रों में विफल हो जाएगा। – RobG

3

यह नहीं मिला आप इसे इस

var date = new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)"); 
var year=date.getFullYear(); 
var month=date.getMonth()+1 //getMonth is zero based; 
var day=date.getDate(); 
var formatted=year+"-"+month+"-"+day; 

मैं तुम्हें एक तारीख को स्वरूपित करने की कोशिश कर रहे देखने की तरह कर सकते हैं। आप पूरी तरह से है कि ड्रॉप और jQuery यूआई का उपयोग करना चाहिए

आप इसे इस तो

var str = $.datepicker.formatDate('yy-mm-dd', new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)");

मैं स्वरूपण दिनांकों

में Web Developer's Notes उपयोगी पाया की तरह स्वरूपित कर सकते हैं
+0

OP को स्ट्रिंग को आज तक कनवर्ट करने की आवश्यकता है, वर्तमान दिनांक –

+0

स्ट्रिंग करने की आवश्यकता नहीं है, लेकिन जहां क्या मैं इसे मूल्य शुक्र जनवरी 31 2014 00:00:00 GMT-0800 (प्रशांत मानक समय) को बदलने के लिए मूल्य देता हूं? – user3097566

+0

क्रोम में यह परिणाम '" दिसंबर 12 2013 09:06:49 GMT-0500 (पूर्वी मानक समय) "', स्ट्रिंग का इरादा नहीं है। @IlyaBursov: नहीं, यह स्ट्रिंग हेरफेर का मामला है। –

0

तुम भी Moment.js लाइब्रेरी का उपयोग कर सकते हैं, यह सुनिश्चित कर लें इसे एक खोज देने के लिए।

कुछ उदाहरण: moment().format('MMMM Do YYYY, h:mm:ss a');

moment().format('dddd'); 
+0

टिप्पणी कंटैस संपादित करने के लिए धन्यवाद! – Simme

+0

आपका स्वागत है। केवल एक चीज यह है कि यह प्रश्नकर्ता को उत्तर देने का उत्तर नहीं देता है - मुझे लगता है कि वह '2014-01-31' प्रारूप की तलाश में है। –

5

jsFiddle Demo

स्प्लिट स्ट्रिंग खाली रिक्त स्थान पर आधारित है। भागों को ले लो और इसे पुनर्निर्माण करें।

function convertDate(d){ 
var parts = d.split(" "); 
var months = {Jan: "01",Feb: "02",Mar: "03",Apr: "04",May: "05",Jun: "06",Jul: "07",Aug: "08",Sep: "09",Oct: "10",Nov: "11",Dec: "12"}; 
return parts[3]+"-"+months[parts[1]]+"-"+parts[2]; 
} 

var d = "Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)"; 
alert(convertDate(d)); 
+1

यह एकमात्र उत्तर है जो करीब आता है।दिनांक तारों को मैन्युअल रूप से पार्स किया जाना चाहिए, विशेष रूप से जहां प्रदान की गई स्ट्रिंग ईसीएमए -262 एड 5 के अनुरूप नहीं है। यह बेहतर हो सकता है कि महीनों को कम केस के रूप में रखें और स्ट्रिंग के महीने भाग पर 'toLowerCase() 'करें ऊपरी मामला और 'toUpperCase()' का उपयोग करें)। – RobG

1

इस तरह की चीजों के लिए ब्राउज़र कंसोल में थोड़ा परीक्षण करना अक्सर अच्छा होता है।

var date = new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)"); 
console.log(date.getFullYear() + '-' + date.getMonth()+1 + '-' + date.getDate()) 

सुनिश्चित करें कि आप getMonth() का परिणाम में जोड़ने के +1 क्योंकि यह शून्य आधारित है।

ऐसा ही एक सवाल यहाँ कहा गया था:

Where can I find documentation on formatting a date in JavaScript?

+0

भले ही दिनांक स्ट्रिंग को सफलतापूर्वक पार्स किया गया हो (यह कई ब्राउज़रों में नहीं होगा), उपर्युक्त एकल अंक दिन या महीनों की संख्या पैड नहीं करेगा जो शायद ओपी चाहता है (हालांकि नहीं बताया गया है)। – RobG

+0

@RobG यह बहुत सारे ब्राउज़रों में काम करता प्रतीत होता है। फिर फिर, ओपी अपने प्रश्न के संदर्भ के आधार पर निर्णय ले सकता है। बेशक अगर आप पूरी तरह से सुरक्षित होना चाहते हैं, तो मैन्युअल स्ट्रिंग मैनिपुलेशन में कोई संदेह नहीं होगा। – dr4g0nus

0
A trifling refinement: 
       var date = new Date(value); 
       var year = date.getFullYear(); 
       var rawMonth = parseInt(date.getMonth()) + 1; 
       var month = rawMonth < 10 ? '0' + rawMonth : rawmonth; 
       var rawDay = parseInt(date.getDate()); 
       var day = rawDay < 10 ? '0' + rawDay : rawDay; 
       console.log(year + '-' + month + '-' + day); 
संबंधित मुद्दे