जावास्क्रिप्ट दिनांक को कैसे प्रारूपित करें


2219

जावास्क्रिप्ट में, मैं प्रिंट करने के लिए दिनांक ऑब्जेक्ट को कैसे प्रारूपित कर सकता हूं 10-Aug-2010?


204
हमेशा की तरह: महीने के शून्य से सावधान रहना चाहिए! तो जनवरी शून्य नहीं एक है ...
क्रिस्टोफ रूसो

12
इसके अलावा खबरदार, myDate.getDay()सप्ताह के दिन वापस नहीं करता है, लेकिन सप्ताह से संबंधित सप्ताह का स्थान। वर्तमान सप्ताह का दिनmyDate.getDate() लौटाता है ।
जिनीमेक्स

3
जावास्क्रिप्ट में DateTimes को फॉर्मेट करने के लिए Intl.DateTimeFormatऑब्जेक्ट का उपयोग करें । मैं अपने पोस्ट में इसका वर्णन करता हूं: पोस्ट । मैं आपके जवाब के लिए एक ऑनलाइन समाधान Intl.DateTimeFormat चेक ऑनलाइन
ईमान बहरामपुर

5
आप उपयोग कर सकते हैंtoLocaleDateString
onmyway133

11
URL को एक मानकीकृत वस्तु के रूप में प्राप्त करने में इतनी देर लगी, जहाँ आप एक क्वेरी परम कुंजी दबा सकते हैं, प्रोटोकॉल को पकड़ सकते हैं, शीर्ष स्तर के डोमेन को पकड़ सकते हैं, आदि वे ES6 ES7 बना सकते हैं, लेकिन फिर भी बस एक मानक तिथि नहीं डाल सकते। 2019 में टाइम फॉर्मेटर / पार्सर? ऐसा लगता है जैसे वे सोच रहे हैं "हम्म्म्म हाँ ... जो जावास्क्रिप्ट का उपयोग कर पृथ्वी पर एक नियमित आधार पर समय और तारीखों से निपटने की आवश्यकता होगी ...."
ahnbizcad

जवाबों:


1285

कस्टम-सीमांकित दिनांक स्वरूपों के लिए, आपको किसी DateTimeFormatऑब्जेक्ट से दिनांक (या समय) घटकों को बाहर निकालना होगा (जो कि ECMAScript अंतर्राष्ट्रीयकरण एपीआई का हिस्सा है ), और फिर मैन्युअल रूप से आपके द्वारा वांछित परिसीमाओं के साथ एक स्ट्रिंग बनाएं।

ऐसा करने के लिए, आप इसका उपयोग कर सकते हैं DateTimeFormat#formatToParts:

const date = new Date('2010-08-05')
const dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit' }) 
const [{ value: month },,{ value: day },,{ value: year }] = dateTimeFormat .formatToParts(date ) 

console.log(`${day}-${month}-${year }`)
console.log(`${day}👠${month}👢${year}`) // just for fun

आप एक DateTimeFormat-एक करके के हिस्सों को भी निकाल सकते हैं DateTimeFormat#format, लेकिन ध्यान दें कि इस पद्धति का उपयोग करते समय, मार्च 2020 तक, ECMAScript कार्यान्वयन में एक बग होता है जब यह मिनटों और सेकंडों पर अग्रणी शून्य पर आता है (यह बग ऊपर के दृष्टिकोण से दरकिनार किया जाता है)।

const d = new Date('2010-08-05')
const ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d)
const mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d)
const da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d)

console.log(`${da}-${mo}-${ye}`)

जब दिनांक और समय के साथ काम करते हैं, तो यह आमतौर पर क्षेत्र के कई छिपे हुए जटिलताओं के कारण एक पुस्तकालय (उदाहरण के लिए। क्षण , लक्सोन ) का उपयोग करने के लायक होता है ।

ध्यान दें कि ऊपर दिए गए समाधानों में उपयोग किए जाने वाले ECMAScript अंतर्राष्ट्रीयकरण एपीआई, IE10 ( फरवरी 2020 में 0.03% वैश्विक ब्राउज़र बाजार हिस्सेदारी) में समर्थित नहीं है ।


368
इसके बजाय वास्तव में Moment.js या Date.js जैसी लाइब्रेरी का उपयोग करने पर विचार करें। इस समस्या को कई बार हल किया गया है।
बेंजामिन

239
ऐसा करने के लिए उनमें कोई फ़ंक्शन शामिल क्यों नहीं है Date?
नयन

68
एक महत्वपूर्ण बिंदु यह है कि getMonth () विधि 0 आधारित महीने का सूचकांक लौटाती है इसलिए उदाहरण के लिए जनवरी 0 वापस आएगा 1 फरवरी, आदि ...
Marko

627
moment.js 2.9.0 11.6k gzipped है, यह उदाहरण 211 बाइट्स gzipped है।
mrzmyr

26
ध्यान दिया जाना चाहिए कि आपको कभी भी, कभी भी, दस्तावेज़ का उपयोग करना चाहिए। राइट ()। भारी सुरक्षा और प्रदर्शन के मुद्दे।
मैट जेन्सेन

2002

यदि आपको वर्तमान में स्वीकृत उत्तर की तुलना में स्वरूपण पर थोड़ा कम नियंत्रण की आवश्यकता है, तो Date#toLocaleDateStringमानक स्थानीय-विशिष्ट रेंडरिंग बनाने के लिए उपयोग किया जा सकता है। localeऔर optionsतर्क अनुप्रयोगों भाषा जिसका स्वरूपण सम्मेलनों इस्तेमाल किया जाना चाहिए निर्दिष्ट करें, और प्रतिपादन के कुछ अनुकूलन की अनुमति देने के करते हैं।

विकल्प प्रमुख उदाहरण:

  1. दिन: दिन
    का प्रतिनिधित्व।
    संभावित मान "संख्यात्मक", "2-अंक" हैं।
  2. कार्यदिवस: कार्यदिवस
    का प्रतिनिधित्व।
    संभावित मूल्य "संकीर्ण", "संक्षिप्त", "लंबे" हैं।
  3. वर्ष: वर्ष
    का प्रतिनिधित्व।
    संभावित मान "संख्यात्मक", "2-अंक" हैं।
  4. माह: महीने
    का प्रतिनिधित्व।
    संभावित मान "संख्यात्मक", "2-अंक", "संकीर्ण", "संक्षिप्त", "लंबे" हैं।
  5. घंटा: घंटे
    का प्रतिनिधित्व।
    संभावित मान "संख्यात्मक", "2-अंक" हैं।
  6. मिनट: मिनट का प्रतिनिधित्व।
    संभावित मान "संख्यात्मक", "2-अंक" हैं।
  7. दूसरा: दूसरे
    का प्रतिनिधित्व।
    संभावित मान "संख्यात्मक", 2-अंक "हैं।

ये सभी कुंजियाँ वैकल्पिक हैं। आप अपनी आवश्यकताओं के आधार पर विकल्पों के मूल्यों की संख्या को बदल सकते हैं, और यह प्रत्येक तिथि समय की उपस्थिति को भी दर्शाएगा।

नोट: यदि आप केवल सामग्री विकल्पों को कॉन्फ़िगर करना चाहते हैं, लेकिन फिर भी वर्तमान स्थान का उपयोग करते हैं, nullतो पहले पैरामीटर के लिए पास होने से त्रुटि होगी। undefinedइसके बजाय उपयोग करें ।

विभिन्न भाषाओं के लिए:

  1. "एन-यूएस": अंग्रेजी के लिए
  2. "hi-IN": हिंदी के लिए
  3. "जा-जेपी": जापानी के लिए

आप अधिक भाषा विकल्पों का उपयोग कर सकते हैं।

उदाहरण के लिए

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today  = new Date();

console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016

आप toLocaleString()इसी उद्देश्य के लिए विधि का उपयोग भी कर सकते हैं । एकमात्र अंतर यह है कि यह फ़ंक्शन उस समय को प्रदान करता है जब आप कोई विकल्प नहीं देते हैं।

// Example
9/17/2016, 1:21:34 PM

संदर्भ:


45
moment.jsएक सरल प्रारूप के लिए उपयोग करने के बारे में था । सौभाग्य से एक अतिरिक्त Google खोज किया और पाया कि ऐसा करने वाला पहले से ही देशी एपीआई है। बाहरी निर्भरता को बचाया। बहुत बढ़िया!
लियोन - हान ली सेप

21
इस उत्तर की तरह लगता है कि सबसे अच्छा "चालू" उत्तर होना चाहिए। 12-घंटे बनाम 24-घंटे के प्रारूप का उपयोग करने के लिए "घंटे 12: सच" विकल्प का भी उपयोग किया। हो सकता है कि उत्तर में आपकी सारांश सूची में जोड़ा जाए।
डग नूडसन

14
मैं इस जवाब पर नहीं मिलता है। यह प्रश्न में समस्या को हल नहीं करता है। (यानी मुझे एक तारीख दें जो 10-अगस्त -2010 जैसी दिखती है)। ToLocaleDateString () का उपयोग करना जो काफी कठिन है। Date.format पुस्तकालय बेहतर समाधान (कम से कम नोड उपयोगकर्ताओं के लिए) लगता है
Iarwa1n

3
तो गुजर undefinedपहले स्थान पैरामीटर महसूस करता मनमाना के रूप में, आप के बजाय मूल्य पारित कर सकते हैं "default"ब्राउज़र की लोकेल सेटिंग का उपयोग करने, MDN डॉक्स प्रति developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
wbharding

3
@ Iarwa1n इस उत्तर का उल्लेख नहीं किया गया है, लेकिन आप toLocaleDateString का उपयोग केवल कुछ भागों को वापस करने के लिए कर सकते हैं जिन्हें आप अपनी इच्छानुसार शामिल कर सकते हैं। नीचे मेरे जवाब की जाँच करें। date.toLocaleDateString("en-US", { day: 'numeric' }) + "-"+ date.toLocaleDateString("en-US", { month: 'short' }) + "-" + date.toLocaleDateString("en-US", { year: 'numeric' })देना चाहिए16-Nov-2019
के विज

609

Date.format लाइब्रेरी का उपयोग करें :

var dateFormat = require('dateformat');
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");

रिटर्न:

Saturday, June 9th, 2007, 5:46:21 PM 

npm पर dateformat

http://jsfiddle.net/phZr7/1/


4
यह लंबे समय तक समाधान की तरह लग सकता है, लेकिन एक साइट पर उपयोग किया जाता है जो तिथियों का उपयोग करता है एक बेहतर सा समाधान होगा!
राबर्टपिट

5
यह समाधान npm
David

19
उपरोक्त प्लगइन के साथ 14 खुले मुद्दे हैं। यहां तक ​​कि मैंने एक पाया :(
अमित कुमार गुप्ता

6
मुझे require is not defined
होली

16
ओपी ने जेएस समाधान के लिए कहा
ल्यूक प्रिंग

523

आप जल्दी से सादे जावास्क्रिप्ट, उपयोग का उपयोग कर अपने तारीख को स्वरूपित करने की जरूरत है getDate, getMonth + 1, getFullYear, getHoursऔर getMinutes:

var d = new Date();

var datestring = d.getDate()  + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();

// 16-5-2015 9:50

या, अगर आपको ज़ीरो से पैडेड करने की आवश्यकता है:

var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
    d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);

// 16-05-2015 09:50

क्या आप बता सकते हैं कि सोमवार, 23 मार्च 2018 जैसे प्रारूप कैसे प्राप्त करें ??
सचिन HR

@SachinHR, पिछले जवाब देखें: stackoverflow.com/a/34015511/4161032toLocaleDateString()स्थानीय माह / दिन नाम का उपयोग तारीख स्वरूपित कर सकते हैं।
sebastian.i

12
आप .toString().padStart(2, '0')
Zeros के

1
@DmitryoN, अगर जरूरत पड़ी तो साल को उसी तरह से गद्देदार किया जा सकता है:("000" + d.getFullYear()).slice(-4)
sebastian.i

4
@ बेनीजोबिगन यह उल्लेख किया जाना चाहिए कि String.padStart()यह केवल ECMAScript 2017 से उपलब्ध है।
JHH

413

खैर, मैं जो चाहता था वह आज की तारीख को 2012-06-23 की तरह एक MySQL के अनुकूल तारीख स्ट्रिंग में परिवर्तित करना था , और उस स्ट्रिंग को मेरे प्रश्नों में से एक पैरामीटर के रूप में उपयोग करना था। सरल समाधान मैंने पाया है:

var today = new Date().toISOString().slice(0, 10);

ध्यान रखें कि उपरोक्त समाधान आपके टाइमज़ोन ऑफसेट को ध्यान में नहीं रखते हैं।

आप इसके बजाय इस फ़ंक्शन का उपयोग करने पर विचार कर सकते हैं:

function toJSONLocal (date) {
    var local = new Date(date);
    local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return local.toJSON().slice(0, 10);
}

यदि आप दिन के प्रारंभ / समाप्ति के आसपास इस कोड को निष्पादित कर रहे हैं तो यह आपको सही तारीख देगा।


9
आप new Date(date + " UTC")टाइमज़ोन को धोखा देने के लिए कर सकते हैं, और आप सेटमिनट्स लाइन को समाप्त कर सकते हैं। आदमी, जावास्क्रिप्ट गंदा है
वज्र हर्मिज़

23
Y10K संगत संस्करण: var today = new Date().toISOString().slice(0,-14):)
एलेक्स शफ़र

22
या इस तरहnew Date().toISOString().split('T')[0]
rofrol

4
new Date().toISOString().slice(0, 16).replace('T',' ')समय शामिल करने के लिए
Gerrie van Wyk

3
बस टिप्पणी करते हुए कि "दिन की शुरुआत / समाप्ति के आसपास" समय की कमी से थोड़ी असुविधा नहीं होती है। उदाहरण के लिए, ऑस्ट्रेलिया में, तारीख लगभग 11AM तक गलत हो सकती है - लगभग आधा दिन!
स्टीव बेनेट

228

कस्टम स्वरूपण समारोह:

निश्चित प्रारूपों के लिए, एक सरल कार्य कार्य करता है। निम्न उदाहरण अंतर्राष्ट्रीय प्रारूप YYYY-MM-DD उत्पन्न करता है:

function dateToYMD(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1; //Month from 0 to 11
    var y = date.getFullYear();
    return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
}

console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

ओपी प्रारूप की तरह उत्पन्न हो सकता है:

function dateToYMD(date) {
    var strArray=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var d = date.getDate();
    var m = strArray[date.getMonth()];
    var y = date.getFullYear();
    return '' + (d <= 9 ? '0' + d : d) + '-' + m + '-' + y;
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

नोट: यह, हालांकि, आमतौर पर जावास्क्रिप्ट मानक पुस्तकालयों का विस्तार करने के लिए एक अच्छा विचार नहीं है (उदाहरण के लिए इस फ़ंक्शन को तिथि के प्रोटोटाइप में जोड़कर)।

एक अधिक उन्नत फ़ंक्शन एक प्रारूप पैरामीटर के आधार पर कॉन्फ़िगर करने योग्य आउटपुट उत्पन्न कर सकता है।

यदि एक प्रारूपण फ़ंक्शन लिखना बहुत लंबा है, तो बहुत सारे पुस्तकालय हैं जिनके चारों ओर यह होता है। कुछ अन्य उत्तर पहले से ही उन्हें बता देते हैं। लेकिन बढ़ती निर्भरता के कारण इसका प्रति-भाग भी होता है।

मानक ECMAScript प्रारूपण कार्य:

ECMAScript के अधिक हाल के संस्करणों के बाद से, Dateकक्षा में कुछ विशिष्ट प्रारूपण कार्य हैं:

.DateString : कार्यान्वयन पर निर्भर, केवल दिनांक दिखाएं।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.todatestring

new Date().toDateString(); // e.g. "Fri Nov 11 2016"

toISOString : आईएसओ 8601 दिनांक और समय दिखाएं।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.toisostring

new Date().toISOString(); // e.g. "2016-11-21T08:00:00.000Z"

.जॉन : स्ट्रिंग के लिए JSON।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tojson

new Date().toJSON(); // e.g. "2016-11-21T08:00:00.000Z"

toLocaleDateString : कार्यान्वयन निर्भर, स्थानीय प्रारूप में एक तारीख।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaledatestring

new Date().toLocaleDateString(); // e.g. "21/11/2016"

toLocaleString : कार्यान्वयन निर्भर, स्थानीय प्रारूप में एक तारीख और समय।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocalestring

new Date().toLocaleString(); // e.g. "21/11/2016, 08:00:00 AM"

toLocaleTimeString : कार्यान्वयन निर्भर, स्थानीय प्रारूप में एक समय।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaletimestring

new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"

.String : सामान्य तिथि के लिए स्ट्रिंग।

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring

new Date().toString(); // e.g. "Fri Nov 21 2016 08:00:00 GMT+0100 (W. Europe Standard Time)"

नोट: उन स्वरूपण से कस्टम आउटपुट उत्पन्न करना संभव है>

new Date().toISOString().slice(0,10); //return YYYY-MM-DD

स्निपेट के उदाहरण:

console.log("1) "+  new Date().toDateString());
console.log("2) "+  new Date().toISOString());
console.log("3) "+  new Date().toJSON());
console.log("4) "+  new Date().toLocaleDateString());
console.log("5) "+  new Date().toLocaleString());
console.log("6) "+  new Date().toLocaleTimeString());
console.log("7) "+  new Date().toString());
console.log("8) "+  new Date().toISOString().slice(0,10));


3
पिछले एक के लिए धन्यवाद .. HTML दिनांक जानकारी के दिनांक मान को सेट करने के लिए उपयोगी।
दाकोडा

new Date().toLocaleDateString()आप उस एक को सही mm/dd/yyyydd/mm/yyyyकरें।
ऐरवी जूल

1
@RajanVerma: toLocaleDateString आपके लोकल को प्रदान करता है, जो कि शायद आप एमएम / डीडी / yyyy हैं क्योंकि आप यूएसए में हैं। यहाँ, तारीख के लिए लोकेल dd / mm / yyyy है (यह बिल्कुल "लोकेल" का बिंदु है)। मैंने "उदा" लिखा क्योंकि यह विनिर्देशन नहीं है, बल्कि आउटपुट का एक उदाहरण है।
एड्रियन मैयर

177

यदि आप पहले से ही अपने प्रोजेक्ट में jQuery UI का उपयोग कर रहे हैं, तो आप इसे इस तरह से कर सकते हैं:

var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377"));

// formatted will be 'Jul 8, 2014'

कुछ डेटपिकर तारीख प्रारूप विकल्पों के साथ खेलने के लिए यहां उपलब्ध हैं


13
जैसा कि मैंने कहा - अगर jQueryUI पहले से ही प्रोजेक्ट में उपयोग किया जाता है - तो डेटापिक डेट फॉर्मेटिंग फ़ंक्शन का फिर से उपयोग करने के लिए क्यों नहीं? हे दोस्तों, मैं इस बात को रेखांकित नहीं करता कि मैं अपने उत्तर पर नकारात्मक मतदान क्यों कर रहा हूँ? कृपया समझाएँ।
दिमित्री पावलोव

7
यह इसलिए हो सकता है कि कोई व्यक्ति jQuery UI को केवल दिनांक स्वरूप फ़ंक्शन के लिए शामिल कर सकता है, या ऐसा हो सकता है क्योंकि डेटकाइपर लाइब्रेरी का एक वैकल्पिक हिस्सा है, लेकिन शायद ऐसा इसलिए है क्योंकि jQuery से नफरत करना फैशनेबल है।
सेनेट

12
मुझे नहीं लगता कि सभी अजीब निर्णयों से पूरी तरह से बचना संभव है जो कोई गलती से या समझदारी से कर सकता है।
दिमित्री पावलोव

7
@ सेनेट: हेटिंग jQuery फैशनेबल है? तो अपने पैरों के साथ अपने पैरों के नीचे आधे रास्ते पर चल रहा है, मुझे लगता है ... जो कि बहुत ज्यादा है जो jQuery के बिना कोड की कोशिश कर रहा था, जावास्क्रिप्ट के अधिकांश इतिहास के लिए जैसा था ...
माइकल Scheper

5
किसी भी मामले में, यह एक सहायक और पूरी तरह से उचित जवाब है - फिर से, 70% वेबसाइटें jQuery का उपयोग करती हैं। डेवलपर्स के धार्मिक विश्वासों के कारण इसे कम नहीं किया जाना चाहिए।
माइकल शेपर

133

मुझे लगता है कि आप केवल गैर-मानक दिनांक विधि का उपयोग कर सकते हैंtoLocaleFormat(formatString)

formatString:strftime() C में फ़ंक्शन द्वारा अपेक्षित प्रारूप में एक स्ट्रिंग ।

var today = new Date();
today.toLocaleFormat('%d-%b-%Y'); // 30-Dec-2011

संदर्भ:


160
toLocaleFormat () फ़ायरफ़ॉक्स में केवल काम करने के लिए प्रकट होता है। मेरे लिए IE और Chrome दोनों विफल हो रहे हैं।
फिटजैगराल्डस्टाइल

16
Chrome में .toLocaleString ('en') विधि है। जैसा कि लगता है कि नया ब्राउज़र इस डेवलपर
apocalypz


6
यह सबसे अच्छा समाधान होगा यदि हर कोई इसे लागू करने में एफ * कर सके। लानत है तुम पर / क्रोम
सांता

6
@ संता: वास्तव में। शायद इस पर मोज़िला के नेतृत्व का पालन न करने का एक उचित कारण था, लेकिन यह तथ्य कि ईएस 6 में भी इस के लिए एक मानक कार्य नहीं है, यह दर्शाता है कि यह अभी भी हैकर की भाषा है, न कि किसी डेवलपर की भाषा।
माइकल स्कीपर

105

प्लेन जावास्क्रिप्ट छोटे onetimers के लिए सबसे अच्छा पिक है।

दूसरी ओर, यदि आपको अधिक तारीख वाले सामान की आवश्यकता है, तो मोमेंटजेएस एक महान समाधान है।

उदाहरण के लिए:

moment().format('YYYY-MM-DD HH:m:s');     // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 11 hours ago
moment().endOf('day').fromNow();          // in 13 hours

2
उल्लेख करना महत्वपूर्ण है: YYYYतब तक उपयोग न करें जब तक कि आप के बीच अंतर नहीं जानते हैं : YYYYऔर stackoverflow.com/questions/15133549/…yyyy
डोमिनियन

@Domin जो कि iOS में NSDateFormatter के लिए विशिष्ट है, जैसे कि Object-C या Swift से उपयोग किया जाता है। यह प्रश्न ब्राउज़र में जावास्क्रिप्ट के बारे में है, और यह उत्तर मोमेंटजेएस का उपयोग करता है, जिसमें YYYY(नहीं yyyy) मानक वर्ष है और GGGG(नहीं YYYY) आईएसओ सप्ताह आधारित वर्ष है।
मार्क रीड

2
पल 100% अप्रचलित नहीं है @ गेरी
लियाम

97

आधुनिक ब्राउज़रों (*) में , आप ऐसा कर सकते हैं:

var today = new Date().toLocaleDateString('en-GB', {
    day : 'numeric',
    month : 'short',
    year : 'numeric'
}).split(' ').join('-');

आउटपुट आज निष्पादित किया गया (24 if, 2016 पुराना):

'24-Jan-2016'

(*) एमडीएन के अनुसार , "आधुनिक ब्राउज़र" का अर्थ है क्रोम 24+, फ़ायरफ़ॉक्स 29+, इंटरनेट एक्सप्लोरर 11, एज 12+, ओपेरा 15+ और सफारी नाइट बिल्ड


क्या यह जांचने का कोई तरीका है कि क्या यह फ़ंक्शन समर्थित है और यदि नहीं, तो सरल समाधान के लिए डिफ़ॉल्ट?
जेम्स विर्ज़बा

@JamesWierzba: आप इस पॉलीफ़िल का उपयोग कर सकते हैं !
जॉन सलेगर्स

यह भी caniuse.com: /
चार्ल्स वुड

51

आपको date.js पर एक नज़र रखना चाहिए । यह तारीखों के साथ काम करने के लिए कई सुविधाजनक सहायक जोड़ता है, उदाहरण के लिए, आपके मामले में:

var date = Date.parse('2010-08-10');
console.log(date.toString('dd-MMM-yyyy'));

आरंभ करना: http://www.datejs.com/2007/11/27/getting-started-with-datejs/


धन्यवाद। यह एक बहुत व्यापक और पूर्ण पुस्तकालय है, जिसमें एक छोटा पदचिह्न है।
मित्छलज

मुझे लगता है कि वर्तमान में मुझे Date.parse से एक नंबर मिल रहा है, जबकि date = new Date (fromString) में अधिक फ़ंक्शन हैं। दुर्भाग्य से मेरे आश्चर्य की बात यह है कि इसे स्वरूपण के लिए पारित किए गए तर्क की व्याख्या किए बिना केवल एक डिफ़ॉल्ट प्रदर्शित करना प्रतीत होता है। NodeJS 11+ toDateString का उपयोग करना एक छोटा आउटपुट है, लेकिन स्वरूपण नहीं लेता है। सभी मैं देख रहा हूँ एक बहुत दृढ़ toLocaleDateString
मास्टर जेम्स

38

मैं पुस्तकालयों और कोई दिनांक विधियों का उपयोग करके एक पंक्ति में आपके अनुरोधित प्रारूप को प्राप्त कर सकता हूं, बस regex:

var d = (new Date()).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3');
// date will be formatted as "14-Oct-2015" (pass any date object in place of 'new Date()')

मेरे परीक्षण में, यह प्रमुख ब्राउज़रों (क्रोम, सफारी, फ़ायरफ़ॉक्स और IE) में मज़बूती से काम करता है। जैसा कि @RobG ने बताया, Date.prototyp.toString () का आउटपुट कार्यान्वयन-निर्भर है, इसलिए सुनिश्चित करने के लिए आउटपुट का परीक्षण करें। यह आपके जावास्क्रिप्ट इंजन में सही काम करता है। आप स्ट्रिंग आउटपुट का परीक्षण करने के लिए कुछ कोड भी जोड़ सकते हैं और यह सुनिश्चित कर सकते हैं कि आपके द्वारा regex को बदलने से पहले आपकी अपेक्षा के अनुरूप है।


console.log(new Date().toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3'));
जॉन

@ एंड्रे - मैं सहमत हूं। यदि यह मेरा कोड होता, तो मैं निश्चित रूप से इसके साथ एक टिप्पणी शामिल करता हूं जो रेगेक्स की व्याख्या करता है और इनपुट और संबंधित आउटपुट का उदाहरण देता है।
JD स्मिथ

कैसे समय के बारे में हिस्सा (HH: मिमी: ss)?
अनरिल्डबॉय

@unruledboy var d = (new Date ()) .String ()। (/ \ S + \ _ s (\ S +) \ s (\ d +) \ s (\ d +) \ s (\ S +) का / s। * /। , '$ 2- $ 1- $ 3 $ 4'); - या तिथि के बिना केवल समय भाग प्राप्त करने के लिए, का उपयोग करें: var d = (new Date ()) .String ()। / (s / s + s (\ S +) \ s (\ d +) \ s (\) को बदलें। d +) \ s (\ एस +) \ s * /, '$ 4')।
जेडी स्मिथ

37

@ Sébastien - वैकल्पिक सभी ब्राउज़र समर्थन

new Date(parseInt(496407600)*1000).toLocaleDateString('de-DE', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\./g, '/');

प्रलेखन: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString


5
.Replace () करने के बजाय, आप केवल 'en-GB' को लोकेल के रूप में उपयोग कर सकते हैं। :)
राबर्टो 14

1
यह वास्तव में अच्छा है, जैसे new Date().toLocaleDateString("en-EN", {month: "short", weekday: "short", day: "2-digit", year: "numeric"})रिटर्न"Wed, Sep 06, 2017"
पीटर टी।

37

ठीक है , हमें इन्टल नामक कुछ मिला है जो इन दिनों जावास्क्रिप्ट में एक तारीख को प्रारूपित करने के लिए बहुत उपयोगी है:

नीचे आपकी तिथि:

var date = '10/8/2010';

और आप नीचे की तरह नई तिथि () का उपयोग करके दिनांक में बदल जाते हैं:

date = new Date(date);

और अब आप इसे नीचे दिए गए स्थानों की सूची का उपयोग करके किसी भी तरह से प्रारूपित कर सकते हैं:

date = new Intl.DateTimeFormat('en-AU').format(date); // Australian date format: "8/10/2010" 


date = new Intl.DateTimeFormat('en-US').format(date); // USA date format: "10/8/2010" 


date = new Intl.DateTimeFormat('ar-EG').format(date);  // Arabic date format: "٨‏/١٠‏/٢٠١٠"

यदि आप वास्तव में उपर्युक्त प्रारूप चाहते हैं, तो आप कर सकते हैं:

date = new Date(Date.UTC(2010, 7, 10, 0, 0, 0));
var options = {year: "numeric", month: "short", day: "numeric"};
date = new Intl.DateTimeFormat("en-AU", options).format(date).replace(/\s/g, '-');

और परिणाम होने जा रहा है:

"10-Aug-2010"

अधिक जानकारी के लिए Intl API और Intl.DateTimeFormat प्रलेखन देखें।


आईई द्वारा समर्थित नहीं
पैंट

यह केवल IE11 द्वारा ही है, IE10- इस तरह से अस्तित्व में होने से पहले ही जीवन के रास्ते से बाहर हो गया है इसलिए यह समझ में आता है। Caniuse से 92%, जो बहुत अच्छा है caniuse.com/#search=datetimeformat
टॉफैंडेल

32

ECMAScript संस्करण 6 (ES6 / ES2015) स्ट्रिंग टेम्पलेट का उपयोग करना:

let d = new Date();
let formatted = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;

यदि आपको सीमांकक बदलने की आवश्यकता है:

const delimiter = '/';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);

30

पैक समाधान: लक्सन

यदि आप सभी को फिट करने के लिए एक समाधान का उपयोग करना चाहते हैं, तो मैं लक्सन ( मोमेंट.जेएस का एक आधुनिक संस्करण ) का उपयोग करने की सलाह देता हूं जो कई स्थानों / भाषाओं और अन्य सुविधाओं के टन में स्वरूपण भी करता है।

Luxon को Moment.js वेबसाइट पर होस्ट किया गया है और Moment.js डेवलपर द्वारा विकसित किया गया है क्योंकि Moment.js की सीमाएँ हैं जो डेवलपर को संबोधित करना चाहता था लेकिन नहीं कर सका।

स्थापित करने के लिए:

npm install luxonया yarn add luxon(अन्य स्थापना विधियों के लिए लिंक पर जाएं)

उदाहरण:

luxon.DateTime.fromISO('2010-08-10').toFormat('yyyy-LLL-dd');

पैदावार:

10 अगस्त 2010

मैनुअल समाधान

Moment.js, Class DateTimeFormatter (Java) , और Class SimpleDateFormat (Java) के समान स्वरूपण का उपयोग करते हुए , मैंने एक व्यापक समाधान लागू किया formatDate(date, patternStr)जहां कोड को पढ़ना और संशोधित करना आसान है। आप दिनांक, समय, AM / PM इत्यादि प्रदर्शित कर सकते हैं, अधिक उदाहरणों के लिए कोड देखें।

उदाहरण:

formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss:S')

( formatDateनीचे दिए गए कोड स्निपेट में लागू किया गया है)

पैदावार:

शुक्रवार, 12 अक्टूबर, 2018 18: 11: 23: 445

"रन कोड स्निपेट" पर क्लिक करके कोड को आज़माएं।

दिनांक और समय पैटर्न

yy= 2-अंकीय वर्ष; yyyy= पूरा साल

M= अंक महीना; MM= 2-अंकों का महीना; MMM= छोटे महीने का नाम; MMMM= पूरे महीने का नाम

EEEE= पूरा सप्ताह का नाम; EEE= लघु कार्यदिवस का नाम

d= अंक दिन; dd= 2-अंकीय दिन

h= घंटे / दोपहर; hh= 2-अंकीय घंटे सुबह / दोपहर; H= घंटे; HH= 2-अंकीय घंटे

m= मिनट; mm= 2-अंकीय मिनट; aaa= एएम / पीएम

s= सेकंड; ss= 2-अंकीय सेकंड

S = मिलिसेकंड

var monthNames = [
  "January", "February", "March", "April", "May", "June", "July",
  "August", "September", "October", "November", "December"
];
var dayOfWeekNames = [
  "Sunday", "Monday", "Tuesday",
  "Wednesday", "Thursday", "Friday", "Saturday"
];
function formatDate(date, patternStr){
    if (!patternStr) {
        patternStr = 'M/d/yyyy';
    }
    var day = date.getDate(),
        month = date.getMonth(),
        year = date.getFullYear(),
        hour = date.getHours(),
        minute = date.getMinutes(),
        second = date.getSeconds(),
        miliseconds = date.getMilliseconds(),
        h = hour % 12,
        hh = twoDigitPad(h),
        HH = twoDigitPad(hour),
        mm = twoDigitPad(minute),
        ss = twoDigitPad(second),
        aaa = hour < 12 ? 'AM' : 'PM',
        EEEE = dayOfWeekNames[date.getDay()],
        EEE = EEEE.substr(0, 3),
        dd = twoDigitPad(day),
        M = month + 1,
        MM = twoDigitPad(M),
        MMMM = monthNames[month],
        MMM = MMMM.substr(0, 3),
        yyyy = year + "",
        yy = yyyy.substr(2, 2)
    ;
    // checks to see if month name will be used
    patternStr = patternStr
      .replace('hh', hh).replace('h', h)
      .replace('HH', HH).replace('H', hour)
      .replace('mm', mm).replace('m', minute)
      .replace('ss', ss).replace('s', second)
      .replace('S', miliseconds)
      .replace('dd', dd).replace('d', day)
      
      .replace('EEEE', EEEE).replace('EEE', EEE)
      .replace('yyyy', yyyy)
      .replace('yy', yy)
      .replace('aaa', aaa);
    if (patternStr.indexOf('MMM') > -1) {
        patternStr = patternStr
          .replace('MMMM', MMMM)
          .replace('MMM', MMM);
    }
    else {
        patternStr = patternStr
          .replace('MM', MM)
          .replace('M', M);
    }
    return patternStr;
}
function twoDigitPad(num) {
    return num < 10 ? "0" + num : num;
}
console.log(formatDate(new Date()));
console.log(formatDate(new Date(), 'dd-MMM-yyyy')); //OP's request
console.log(formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss.S aaa'));
console.log(formatDate(new Date(), 'EEE, MMM d, yyyy HH:mm'));
console.log(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss.S'));
console.log(formatDate(new Date(), 'M/dd/yyyy h:mmaaa'));

लक्सन को ऊपर लाने के लिए @Gerry को धन्यवाद।


1
वैसे, SimpleDateFormatक्लास द्वारा सालों पहले परेशान करने वाली क्लास को दबा दिया गया था java.time.format.DateTimeFormatter
बेसिल बोर्क

1
@ बासीबोर्के, विख्यात। वे दोनों एक ही पैटर्न का उपयोग करते हैं। मैं 5 साल के लिए एक पूर्व-जावा 8 परियोजना पर था, इसलिए मैं कभी भी नए सामान के संपर्क में नहीं आया। धन्यवाद!
lewdev

देखें ThreeTen-backport का सबसे पाने के लिए जावा 6 और 7 के लिए परियोजना, java.time लगभग समान एपीआई के साथ कार्यक्षमता।
तुलसी बोर्क

@BasilBourque संदर्भ के लिए धन्यवाद, लेकिन मैं उस परियोजना पर अब काम नहीं करता हूं, लेकिन जब यह सामने आता है तो मैं निश्चित रूप से इसे ध्यान में रखूंगा।
लवदेव

2
क्षण अप्रचलित है,
गेरी

19

यहाँ कुछ कोड है जो मैंने सिर्फ एक प्रोजेक्ट के लिए फॉर्मेटिंग को संभालने के लिए लिखा था, जिस पर मैं काम कर रहा हूँ। यह मेरी जरूरतों के अनुरूप PHP की प्रारूपण कार्यक्षमता की नकल करता है। इसका उपयोग करने के लिए स्वतंत्र महसूस करें, यह केवल पहले से मौजूद दिनांक () ऑब्जेक्ट का विस्तार कर रहा है। यह सबसे सुंदर समाधान नहीं हो सकता है लेकिन यह मेरी जरूरतों के लिए काम कर रहा है।

var d = new Date(); 
d_string = d.format("m/d/Y h:i:s");

/**************************************
 * Date class extension
 * 
 */
    // Provide month names
    Date.prototype.getMonthName = function(){
        var month_names = [
                            'January',
                            'February',
                            'March',
                            'April',
                            'May',
                            'June',
                            'July',
                            'August',
                            'September',
                            'October',
                            'November',
                            'December'
                        ];

        return month_names[this.getMonth()];
    }

    // Provide month abbreviation
    Date.prototype.getMonthAbbr = function(){
        var month_abbrs = [
                            'Jan',
                            'Feb',
                            'Mar',
                            'Apr',
                            'May',
                            'Jun',
                            'Jul',
                            'Aug',
                            'Sep',
                            'Oct',
                            'Nov',
                            'Dec'
                        ];

        return month_abbrs[this.getMonth()];
    }

    // Provide full day of week name
    Date.prototype.getDayFull = function(){
        var days_full = [
                            'Sunday',
                            'Monday',
                            'Tuesday',
                            'Wednesday',
                            'Thursday',
                            'Friday',
                            'Saturday'
                        ];
        return days_full[this.getDay()];
    };

    // Provide full day of week name
    Date.prototype.getDayAbbr = function(){
        var days_abbr = [
                            'Sun',
                            'Mon',
                            'Tue',
                            'Wed',
                            'Thur',
                            'Fri',
                            'Sat'
                        ];
        return days_abbr[this.getDay()];
    };

    // Provide the day of year 1-365
    Date.prototype.getDayOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((this - onejan) / 86400000);
    };

    // Provide the day suffix (st,nd,rd,th)
    Date.prototype.getDaySuffix = function() {
        var d = this.getDate();
        var sfx = ["th","st","nd","rd"];
        var val = d%100;

        return (sfx[(val-20)%10] || sfx[val] || sfx[0]);
    };

    // Provide Week of Year
    Date.prototype.getWeekOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
    } 

    // Provide if it is a leap year or not
    Date.prototype.isLeapYear = function(){
        var yr = this.getFullYear();

        if ((parseInt(yr)%4) == 0){
            if (parseInt(yr)%100 == 0){
                if (parseInt(yr)%400 != 0){
                    return false;
                }
                if (parseInt(yr)%400 == 0){
                    return true;
                }
            }
            if (parseInt(yr)%100 != 0){
                return true;
            }
        }
        if ((parseInt(yr)%4) != 0){
            return false;
        } 
    };

    // Provide Number of Days in a given month
    Date.prototype.getMonthDayCount = function() {
        var month_day_counts = [
                                    31,
                                    this.isLeapYear() ? 29 : 28,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31
                                ];

        return month_day_counts[this.getMonth()];
    } 

    // format provided date into this.format format
    Date.prototype.format = function(dateFormat){
        // break apart format string into array of characters
        dateFormat = dateFormat.split("");

        var date = this.getDate(),
            month = this.getMonth(),
            hours = this.getHours(),
            minutes = this.getMinutes(),
            seconds = this.getSeconds();
        // get all date properties ( based on PHP date object functionality )
        var date_props = {
            d: date < 10 ? '0'+date : date,
            D: this.getDayAbbr(),
            j: this.getDate(),
            l: this.getDayFull(),
            S: this.getDaySuffix(),
            w: this.getDay(),
            z: this.getDayOfYear(),
            W: this.getWeekOfYear(),
            F: this.getMonthName(),
            m: month < 10 ? '0'+(month+1) : month+1,
            M: this.getMonthAbbr(),
            n: month+1,
            t: this.getMonthDayCount(),
            L: this.isLeapYear() ? '1' : '0',
            Y: this.getFullYear(),
            y: this.getFullYear()+''.substring(2,4),
            a: hours > 12 ? 'pm' : 'am',
            A: hours > 12 ? 'PM' : 'AM',
            g: hours % 12 > 0 ? hours % 12 : 12,
            G: hours > 0 ? hours : "12",
            h: hours % 12 > 0 ? hours % 12 : 12,
            H: hours,
            i: minutes < 10 ? '0' + minutes : minutes,
            s: seconds < 10 ? '0' + seconds : seconds           
        };

        // loop through format array of characters and add matching data else add the format character (:,/, etc.)
        var date_string = "";
        for(var i=0;i<dateFormat.length;i++){
            var f = dateFormat[i];
            if(f.match(/[a-zA-Z]/g)){
                date_string += date_props[f] ? date_props[f] : '';
            } else {
                date_string += f;
            }
        }

        return date_string;
    };
/*
 *
 * END - Date class extension
 * 
 ************************************/

18

किसी भी बाहरी पुस्तकालयों का उपयोग किए बिना एक जावास्क्रिप्ट समाधान:

var now = new Date()
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
var formattedDate = now.getDate() + "-" + months[now.getMonth()] + "-" + now.getFullYear()
alert(formattedDate)

16

new Date().toLocaleDateString()

// "3/21/2018"

Developer.mozilla.org पर अधिक प्रलेखन


1
ध्यान दिया जाना चाहिए कि आपको कभी भी, कभी भी, दस्तावेज़ का उपयोग करना चाहिए। राइट ()। विशाल सुरक्षा और प्रदर्शन के मुद्दे
यूजीन फिदेलिन

15

यदि आप अपने कोड में jQuery UI का उपयोग कर रहे हैं, तो एक इनबिल्ट फ़ंक्शन है formatDate()। मैं इसका उपयोग आज की तारीख को प्रारूपित करने के लिए कर रहा हूं:

var testdate = Date();
testdate = $.datepicker.formatDate( "d-M-yy",new Date(testdate));
alert(testdate);

आप jQuery UI प्रलेखन में दिनांक स्वरूपण के कई अन्य उदाहरण देख सकते हैं ।


15

हमारे पास इसके लिए बहुत सारे समाधान हैं, लेकिन मुझे लगता है कि उनमें से सबसे अच्छा क्षण मोमेंट्स है। इसलिए मैं व्यक्तिगत रूप से दिनांक और समय के संचालन के लिए Moment.js का उपयोग करने का सुझाव देता हूं।

console.log(moment().format('DD-MMM-YYYY'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>


क्यों आप jquery सहित हैं?
सेड ऑक्ट

1
ओह माफ करना इसकी आवश्यकता नहीं है। धन्यवाद @Ced
विजय माहेरिया

कैसे मुझे तारीख प्रदान करनी है। मुझे लगता है कि यह हमेशा वर्तमान समय लेता है।
डेव रंजन

1
@DaveRanjan मुझे लगता है कि आपको अपनी कस्टम तिथि बदलने की आवश्यकता है। इसलिए इसका उपयोग करें: कंसोल.लॉग (पल ('2016-08-10')। प्रारूप ('डीडी-एमएमएम-वाईवाईवाईवाई));
विजय महेरिया

हाँ, यह बाद में पता लगा। धन्यवाद :)
डेव रंजन

15

जावास्क्रिप्ट में DateTimes को प्रारूपित करने का एक उपयोगी और लचीला तरीका है Intl.DateTimeFormat:

var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));

परिणाम है: "12-Oct-2017"

विकल्प तर्क का उपयोग करके दिनांक और समय प्रारूप को अनुकूलित किया जा सकता है।

Intl.DateTimeFormatवस्तु वस्तुओं है कि भाषा संवेदनशील तारीख और समय का प्रारूप सक्षम के लिए एक निर्माता है।

वाक्य - विन्यास

new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])

पैरामीटर

स्थानों

वैकल्पिक। बीसीपी 47 भाषा टैग के साथ एक स्ट्रिंग, या ऐसे तार की एक सरणी। स्थान तर्क के सामान्य रूप और व्याख्या के लिए, Intl पृष्ठ देखें। निम्नलिखित यूनिकोड एक्सटेंशन कुंजियों की अनुमति है:

nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".

विकल्प

वैकल्पिक। निम्नलिखित गुणों में से कुछ के साथ एक वस्तु:

localeMatcher

स्थानीय मिलान एल्गोरिथ्म का उपयोग करने के लिए। संभावित मूल्य हैं "lookup"और "best fit"; डिफ़ॉल्ट है "best fit"। इस विकल्प के बारे में जानकारी के लिए, Intl पृष्ठ देखें।

समय क्षेत्र

समय क्षेत्र का उपयोग करने के लिए। केवल मूल्य कार्यान्वयन को पहचानना चाहिए "UTC"; डिफ़ॉल्ट रनटाइम का डिफ़ॉल्ट समय क्षेत्र है। क्रियान्वयन भी इस तरह के रूप में IANA समय क्षेत्र डेटाबेस के समय क्षेत्र के नाम, पहचान सकते हैं "Asia/Shanghai", "Asia/Kolkata", "America/New_York"

hour12

12 घंटे के समय का उपयोग करना है (24 घंटे के समय के विपरीत)। संभावित मूल्य हैं trueऔर false; डिफ़ॉल्ट स्थानीय निर्भर है।

formatMatcher

प्रारूप का उपयोग करने के लिए एल्गोरिथ्म मिलान। संभावित मूल्य हैं "basic"और "best fit"; डिफ़ॉल्ट है "best fit"। इस संपत्ति के उपयोग के बारे में जानकारी के लिए निम्नलिखित पैराग्राफ देखें।

निम्न गुण स्वरूपित आउटपुट और उनके वांछित अभ्यावेदन में उपयोग करने के लिए दिनांक-समय के घटकों का वर्णन करते हैं। कार्यान्वयन को कम से कम निम्नलिखित सबसेट का समर्थन करना आवश्यक है:

weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute

कार्यान्वयन अन्य सबसेट का समर्थन कर सकता है, और सबसे अच्छा मैच खोजने के लिए सभी उपलब्ध उप-प्रतिनिधित्व संयोजनों के खिलाफ अनुरोध पर बातचीत की जाएगी। इस बातचीत के लिए दो एल्गोरिदम उपलब्ध हैं और प्रारूपमित्र संपत्ति द्वारा चयनित हैं: पूरी तरह से निर्दिष्ट"basic" एल्गोरिथ्म और एक कार्यान्वयन पर निर्भर "सर्वश्रेष्ठ फिट" एल्गोरिदम।

काम करने के दिन

कार्यदिवस का प्रतिनिधित्व। संभावित मान हैं "narrow", "short", "long"

युग

युग का प्रतिनिधित्व। संभावित मान हैं "narrow", "short", "long"

साल

वर्ष का प्रतिनिधित्व। संभावित मान हैं "numeric", "2-digit"

महीना

महीने का प्रतिनिधित्व। संभावित मान हैं "numeric", "2-digit", "narrow", "short", "long"

दिन

दिन का प्रतिनिधित्व। संभावित मूल्य हैं "numeric","2-digit"

घंटा

घंटे का प्रतिनिधित्व। संभावित मान हैं "numeric", "2-digit"

मिनट

मिनट का प्रतिनिधित्व। संभावित मान हैं "numeric", "2-digit"

दूसरा

दूसरे का प्रतिनिधित्व। संभावित मान हैं "numeric", "2-digit"

timeZoneName

समय क्षेत्र नाम का प्रतिनिधित्व। संभावित मान हैं "short", "long"। प्रत्येक दिनांक-समय घटक गुण के लिए डिफ़ॉल्ट मान अपरिभाषित है, लेकिन यदि सभी घटक गुण अपरिभाषित हैं, तो वर्ष, महीना और दिन माना जाता है "numeric"

ऑनलाइन जाँच करें

अधिक जानकारी


15

इस समस्या से मदद मिल सकती है:

var d = new Date();

var options = {   
    day: 'numeric',
    month: 'long', 
    year: 'numeric'
};

console.log(d.toLocaleDateString('en-ZA', options));

प्रारूप का पता लगाने की तिथि


2
या d.toLocaleDateString('en-US', options);यदि आप संयुक्त राज्य अमेरिका में हैं।
बिशप

यह मेरा समाधान था। धन्यवाद।
स्टीवन रोजर्स 19

13

इस तरह मैंने अपने npm प्लगइन्स के लिए लागू किया

var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];

var Days = [
  "Sunday", "Monday", "Tuesday", "Wednesday",
  "Thursday", "Friday", "Saturday"
];

var formatDate = function(dt,format){
  format = format.replace('ss', pad(dt.getSeconds(),2));
  format = format.replace('s', dt.getSeconds());
  format = format.replace('dd', pad(dt.getDate(),2));
  format = format.replace('d', dt.getDate());
  format = format.replace('mm', pad(dt.getMinutes(),2));
  format = format.replace('m', dt.getMinutes());
  format = format.replace('MMMM', monthNames[dt.getMonth()]);
  format = format.replace('MMM', monthNames[dt.getMonth()].substring(0,3));
  format = format.replace('MM', pad(dt.getMonth()+1,2));
  format = format.replace(/M(?![ao])/, dt.getMonth()+1);
  format = format.replace('DD', Days[dt.getDay()]);
  format = format.replace(/D(?!e)/, Days[dt.getDay()].substring(0,3));
  format = format.replace('yyyy', dt.getFullYear());
  format = format.replace('YYYY', dt.getFullYear());
  format = format.replace('yy', (dt.getFullYear()+"").substring(2));
  format = format.replace('YY', (dt.getFullYear()+"").substring(2));
  format = format.replace('HH', pad(dt.getHours(),2));
  format = format.replace('H', dt.getHours());
  return format;
}

pad = function(n, width, z) {
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}

आप किस पैकेज का जिक्र कर रहे हैं?
lbrahim

यह एक बग है: महीने के नाम पहले बदल दिए जाते हैं, फिर महीने का नाम भी बदल दिया जाएगा। उदाहरण के लिए इस कोड के साथ Marchबन जाएगा 3arch
ntaso

1
के लिए लाइन बदलें 'M'करने के लिए format = format.replace("M(?!M)", (dt.getMonth()+1).toString());और रेखा से ऊपर डाल दिया साथ'MMMM'
ntaso


8

Sugar.js में दिनांक ऑब्जेक्ट के लिए उत्कृष्ट एक्सटेंशन हैं, जिसमें Date.format भी शामिल है पद्धति भी शामिल है।

प्रलेखन से उदाहरण:

Date.create().format('{Weekday} {Month} {dd}, {yyyy}');

Date.create().format('{12hr}:{mm}{tt}')

8

कॉपी, पेस्ट और अपनाने के लिए वास्तव में सरल ES6 समाधान की तलाश में किसी के लिए:

const dateToString = d => `${d.getFullYear()}-${('00' + (d.getMonth() + 1)).slice(-2)}-${('00' + d.getDate()).slice(-2)}` 

// how to use:
const myDate = new Date(Date.parse('04 Dec 1995 00:12:00 GMT'))
console.log(dateToString(myDate)) // 1995-12-04


8

2019 तक, ऐसा लगता है कि आप केवल कुछ भागों को वापस करने के लिए toLalealeDateString प्राप्त कर सकते हैं और फिर आप उन्हें अपनी इच्छानुसार शामिल कर सकते हैं:

var date = new Date();

console.log(date.toLocaleDateString("en-US", { day: 'numeric' }) 
            + "-"+ date.toLocaleDateString("en-US", { month: 'short' })
            + "-" + date.toLocaleDateString("en-US", { year: 'numeric' }) );

> 16-Nov-2019

console.log(date.toLocaleDateString("en-US", { month: 'long' }) 
            + " " + date.toLocaleDateString("en-US", { day: 'numeric' }) 
            + ", " + date.toLocaleDateString("en-US", { year: 'numeric' }) );

> November 16, 2019

8

आपको DayJs पर एक नज़र रखना चाहिए यह क्षणों की रीमेक है लेकिन मॉड्यूलर आर्किटेक्चर इतना हल्का है।

एक ही आधुनिक एपीआई के साथ Moment.js के लिए फास्ट 2kB विकल्प

Day.js एक न्यूनतावादी जावास्क्रिप्ट लाइब्रेरी है जो मोटे तौर पर Moment.js- संगत API के साथ आधुनिक ब्राउज़रों के लिए दिनांक और समय को पार्स, सत्यापित, हेरफेर और प्रदर्शित करता है। यदि आप Moment.js का उपयोग करते हैं, तो आप पहले से ही जानते हैं कि Day.js. का उपयोग कैसे करें

var date = Date.now();
const formatedDate = dayjs(date).format("YYYY-MM-DD")
console.log(formatedDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.8.16/dayjs.min.js" crossorigin="anonymous"></script>


7

"10-अगस्त -2010" प्राप्त करने के लिए, प्रयास करें:

var date = new Date('2010-08-10 00:00:00');
date = date.toLocaleDateString(undefined, {day:'2-digit'}) + '-' + date.toLocaleDateString(undefined, {month:'short'}) + '-' + date.toLocaleDateString(undefined, {year:'numeric'})

ब्राउज़र समर्थन के लिए, देखें toLocaleDateString


मुझे "-" की आवश्यकता नहीं थी, यहां समय, दिनांक और समय क्षेत्र के साथ एक छोटा संस्करण है! तारीख = नई तारीख (); तारीख। :)
वरुण
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.