JS दिनांक ऑब्जेक्ट से YYYYMMDD प्रारूप में स्ट्रिंग प्राप्त करें?


397

मैं प्रारूप date objectमें एक स्ट्रिंग में बदलने के लिए JS का उपयोग करने की कोशिश कर रहा हूं YYYYMMDD। वहाँ श्रृंखलाबद्ध से एक आसान तरीका है Date.getYear(), Date.getMonth()और Date.getDay()?


4
उन तीनों को सम्‍मिलित करने का तरीका है
जुआन कोर्टेस

5
यदि आप एक तार चाहते हैं जो एक ही तिथि को पार्स करेगा, तो महीने को बढ़ाना मत भूलना। अपनी कल्पना से मेल खाने के लिए आपको महीने में एक अंक और '0' के साथ तारीख
डालना होगा

जवाबों:


620

कोड का बदला हुआ टुकड़ा जिसका मैं अक्सर उपयोग करता हूं:

Date.prototype.yyyymmdd = function() {
  var mm = this.getMonth() + 1; // getMonth() is zero-based
  var dd = this.getDate();

  return [this.getFullYear(),
          (mm>9 ? '' : '0') + mm,
          (dd>9 ? '' : '0') + dd
         ].join('');
};

var date = new Date();
date.yyyymmdd();

16
आपको इसके [1]साथ प्रतिस्थापित करना चाहिए .length===2, क्योंकि एक स्ट्रिंग पर एक अनुक्रमणिका पूरी तरह से समर्थित नहीं है। कारणों के लिए यह उत्तर देखें।
०४:१४ बजे ०४:१४

6
var mm = (this.getMonth () + 101) .toStrung ()। सबरिंग (0, 2);
9

7
किसी के लिए @Aidiakapi के ठीक होने का व्यावहारिक उदाहरण चाहने के लिए, मैं यहाँ एक
फिडेल बनाता हूँ

1
यदि आप डॉट्स सेपरेटर रखना चाहते हैं:[this.getFullYear(), mm<10 ? '0'+ mm: mm, dd<10 ? '0'+ dd : dd].join('.')
कामिल कीलक्वेस्की

3
@ 9dan यह नहीं होना चाहिएvar mm = (this.getMonth() + 101).toString().substring(1, 3)
Pnar Sbi Wer

316

मुझे प्रोटोटाइप में जोड़ना पसंद नहीं था। एक विकल्प यह होगा:

var rightNow = new Date();
var res = rightNow.toISOString().slice(0,10).replace(/-/g,"");

<!-- Next line is for code snippet output only -->
document.body.innerHTML += res;


51
यदि आपको rightNowचर की आवश्यकता नहीं है , तो आप new Dateइसे एक ही पंक्ति में लपेट सकते हैं और वापस पा सकते हैं :(new Date()).toISOString().slice(0,10).replace(/-/g,"")
BigBlueHat

5
मैं चाहता था YYYYMMDDHHmmSSsss, इसलिए मैंने ऐसा किया var ds = (new Date()).toISOString().replace(/[^0-9]/g, "");:। बहुत आसान है, लेकिन समझाया जाना चाहिए।
जेस

65
यह सामान्य रूप से कार्य नहीं करेगा क्योंकि Date.toISOString () एक UTC स्वरूपित दिनांक बनाता है और इसलिए समय-सीमा के आधार पर दिनांक सीमाओं को कूद सकता है। जैसे GMT + 1 में: (नई तिथि (2013,13, 25))। toISOString () == '2013-12-24T23: 00: 00.000Z'
weberste

26
यह विफल हो जाएगा यदि वर्ष 10000 में कोई आपके 'उदासीन' कोड का उपयोग करेगा।
त्रेवी पानी

9
टाइमज़ोन के साथ सामना करने के लिए सुझाए गए सुधार। rightNow.setMinutes(rightNow.getMinutes() - rightNow.getTimezoneOffset()); rightNow.toISOString().slice(0,10)
एंड्रियास

181

आप toISOStringफ़ंक्शन का उपयोग कर सकते हैं :

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

यह आपको "yyyy-mm-dd" प्रारूप देगा।


24
कुछ मामलों में इसमें सही दिन शामिल नहीं होगा, क्योंकि समय-दिन की रोशनी आदि ...
मिगेल

1
शायद मेरी रचनात्मकता टूट गई है @ मिगुएल, लेकिन मैं एक ऐसे मामले के बारे में नहीं सोच सकता जहां ऐसा होगा। क्या आप एक उदाहरण प्रदान करना चाहेंगे?
बादल

35
यदि आप +1 टाइमज़ोन में हैं, और एक तारीख है [2015-09-01 00:00:00 GMT + 1], तो toISOString () विधि स्ट्रिंग को वापस कर देगी '2015-08-31T23: 00: 00.000Z 'क्योंकि तारीख कड़ाई से पहले UTC / 0-ऑफसेट में बदल जाती है।
ल्यूक बॉल्च

थोड़ा छोटा ... var आज = ​​(नई तिथि ())। ToISOString ()। सबरिंग (0, 10);
तेविथफ्रूट

अलग GMT के साथ विफल
टोबिया

131

Moment.js आपका दोस्त हो सकता है

var date = new Date();
var formattedDate = moment(date).format('YYYYMMDD');

18
खैर, यह मेरे app.js के लिए 40kb (कीमा बनाया हुआ, गैर gZip) जोड़ें, लेकिन मैं इसके लिए गया था, धन्यवाद :)।
बार्ट

अब तक का सबसे अच्छा जवाब!
ट्रूलीएक्सएक्स

9
मैं तब तक प्रतीक्षा करने की जहमत नहीं
उठाता

1
आप इसे आसान बना सकते हैं:var formattedDate = moment().format('YYYYMMDD');
ns16

37

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

$.datepicker.formatDate('yymmdd', new Date());

मैं आमतौर पर बहुत अधिक पुस्तकालयों का आयात करना पसंद नहीं करता। लेकिन jQuery UI बहुत उपयोगी है, आप शायद इसे अपने प्रोजेक्ट में कहीं और उपयोग करेंगे।

यात्रा http://api.jqueryui.com/datepicker/ अधिक उदाहरण के लिए


37

यह कोड की एक एकल पंक्ति है जिसका उपयोग आप YYYY-MM-DDआज की तारीख का एक तार बनाने के लिए कर सकते हैं ।

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

^ यह! FTW! +1 .. हालांकि थोड़ा परीक्षण करने की आवश्यकता है।
गोगोल

21
चेतावनी कठिन है, यदि आपकी तारीख 2016-01-01 00:00:00 GMT +2 है, तो यह 2015-12-31 वापस आ toISOString()जाएगी क्योंकि 2015-12-31T22: 00: 00 GMT +0 (दो घंटे पहले) दे देंगे।
जेरोम गिलार्ड

29
new Date('Jun 5 2016').
  toLocaleString('en-us', {year: 'numeric', month: '2-digit', day: '2-digit'}).
  replace(/(\d+)\/(\d+)\/(\d+)/, '$3-$1-$2');

// => '2016-06-05'

5
श्रेष्ठ आत्मीयता।
زياد

किसी कारण से, एक दिन पहले वापस नहीं छोड़ने के लिए रूपांतरण के लिए समय (भले ही 00:00) जोड़ने की आवश्यकता होती है, जब मैं यहां सूत्र चलाता हूं, पूर्वी तट यूएसए। एक बार मैंने ऐसा किया, यह मज़बूती से काम करना शुरू कर दिया। इसके बारे में मुझे जो पसंद है, वह यह है कि इनपुट फॉर्मेट को कई प्रारूपों में लिया जा सकता है, इसलिए मुझे इस बारे में चिंता करने की जरूरत नहीं है। new Date('Sun Mar 31 2019 00:00:00.000').toLocaleString('en-us', {year: 'numeric', month: '2-digit', day: '2-digit'}).replace(/(\d+)\/(\d+)\/(\d+)/, '$3-$1-$2');
nenea

24

ऊ के उत्तर के अलावा, मैं तर्क संचालन को वापसी से अलग करने की सिफारिश करना चाहूंगा और उन्हें चर में टर्नरी के रूप में डालूंगा।

इसके अलावा, concat()चर का सुरक्षित संयोजन सुनिश्चित करने के लिए उपयोग करें

Date.prototype.yyyymmdd = function() {
  var yyyy = this.getFullYear();
  var mm = this.getMonth() < 9 ? "0" + (this.getMonth() + 1) : (this.getMonth() + 1); // getMonth() is zero-based
  var dd = this.getDate() < 10 ? "0" + this.getDate() : this.getDate();
  return "".concat(yyyy).concat(mm).concat(dd);
};

Date.prototype.yyyymmddhhmm = function() {
  var yyyymmdd = this.yyyymmdd();
  var hh = this.getHours() < 10 ? "0" + this.getHours() : this.getHours();
  var min = this.getMinutes() < 10 ? "0" + this.getMinutes() : this.getMinutes();
  return "".concat(yyyymmdd).concat(hh).concat(min);
};

Date.prototype.yyyymmddhhmmss = function() {
  var yyyymmddhhmm = this.yyyymmddhhmm();
  var ss = this.getSeconds() < 10 ? "0" + this.getSeconds() : this.getSeconds();
  return "".concat(yyyymmddhhmm).concat(ss);
};

var d = new Date();
document.getElementById("a").innerHTML = d.yyyymmdd();
document.getElementById("b").innerHTML = d.yyyymmddhhmm();
document.getElementById("c").innerHTML = d.yyyymmddhhmmss();
<div>
  yyyymmdd: <span id="a"></span>
</div>
<div>
  yyyymmddhhmm: <span id="b"></span>
</div>
<div>
  yyyymmddhhmmss: <span id="c"></span>
</div>


यदि कोई इसका उपयोग करना पसंद करता है, तो मैं यहां DRY का सुझाव देता हूं, पहले से ही किए गए कार्यों को फिर से एक ही करने के बजाय पुन: उपयोग करें।
RiZKiT

@RiZKiT DRY एक सिद्धांत है और एक पैटर्न नहीं है लेकिन निश्चित रूप से, इसमें बहुत सुधार किया जा सकता है। अगर मैं इसका इस्तेमाल खुद करूं तो मैं शायद दूसरे पैटर्न का इस्तेमाल करूं और तरीकों को प्रोटोटाइप से दूर कर दूं। मैंने मुख्य रूप से वहां दिखाने के लिए उदाहरण लिखा जहां समस्या को हल करने के अन्य तरीके हैं। जहां लोगों को से ले वहाँ खुद को पर निर्भर है
एरिक Herlitz

अच्छा! मैं ("00" + (this.getDate())).slice(-2)दो अंकों के आधार पर अंक प्राप्त करने के लिए उपयोग करता हूं । कोई भी "if" या "?:" कथन नहीं है, और .getX () फ़ंक्शन के लिए कम कॉल हैं। यदि थोड़ा तेज नहीं है, तो यह कम से कम अधिक पठनीय है।
ले रोलैंडिस वोलेंट

22

मुझे देशी वस्तुओं को संशोधित करना पसंद नहीं है, और मुझे लगता है कि स्वीकृत समाधान को स्ट्रिंग करने की तुलना में गुणा अधिक स्पष्ट है।

function yyyymmdd(dateIn) {
  var yyyy = dateIn.getFullYear();
  var mm = dateIn.getMonth() + 1; // getMonth() is zero-based
  var dd = dateIn.getDate();
  return String(10000 * yyyy + 100 * mm + dd); // Leading zeros for mm and dd
}

var today = new Date();
console.log(yyyymmdd(today));

फिडल: http://jsfiddle.net/gbdarren/Ew7Y4/


4
इस उत्तर को अस्वीकार कर दिया गया था, और मुझे पता नहीं क्यों। मुझे लगा कि स्ट्रिंग हेरफेर की तुलना में गणित तेज और स्पष्ट है। अगर किसी को पता है कि यह एक बुरा जवाब क्यों है, तो कृपया मुझे बताएं।
डैरेन ग्रिफ़िथ

4
10000 गुणक वहाँ 4 स्थानों (महीने और दिन अंक 2 अंक प्रत्येक की जरूरत है) द्वारा YYYY छोड़ दिया है और Y10K बग के साथ कुछ नहीं करना है। मुझे यह जवाब पसंद है और यह सम्मान के लायक है!
ए मैसन

1
इस उत्तर के लिए धन्यवाद मैंने यहाँ fiddle बनाया jsfiddle.net/amwebexpert/L6j0omb4
A. Masson

1
मुझे गुणा की बिल्कुल आवश्यकता नहीं थी और मुझे समझ नहीं आता कि यह वहाँ क्यों है। jsfiddle.net/navyjax2/gbqmv0t5 अन्यथा, कि बाहर छोड़ दो, और यह एक महान जवाब है और मुझे बहुत मदद की।
vapcguy 21

1
@ डी-मनी आह, मुझे लगा कि आपका क्या मतलब है - आप एक दूसरे पर अलग-अलग गणित ऑपरेशन करने से बचने के लिए एक साथ संख्याओं को जोड़कर एक अलग तरह का एक संयोजन कर रहे हैं - एक ऑपरेशन जो सामान्य करने के लिए एक को रोकने के लिए ' अन्यथा उन्हें गड़बड़ कर दिया। बहुत बढ़िया! मेरा काम करता है क्योंकि मैं विभाजक का उपयोग कर रहा हूं (जो मुझे .replace('-', '')ओपी के सवाल का जवाब देने के लिए एक पर करना होगा), जबकि आप ओपी के मूल प्रश्न के लिए सही थे और इसके लिए उस अतिरिक्त कदम की आवश्यकता नहीं होगी। अति उत्कृष्ट!
vapcguy

15

UTC में Date.toISOString () मुद्रण के कारण संभावित जेएस (ES5) समाधान बिना किसी संभावित तारीख के जंप मुद्दों के बिना:

var now = new Date();
var todayUTC = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));
return todayUTC.toISOString().slice(0, 10).replace(/-/g, '');

यह @Pierre Guilbert के जवाब पर @ weberste की टिप्पणी के जवाब में है।


now.getMonth () जनवरी के लिए 0 लौटेगा, यह होना चाहिए (now.getMonth () + 1)
Jas

2
गलत। दिनांक का UTC फ़ंक्शन महीने को 0 और 11 के बीच होने की उम्मीद करता है (लेकिन अन्य <0 और> 11 की अनुमति है)।
डॉरमॉज़

आप एक एकल द्वारा कई हाइफ़न को क्यों बदलते हैं? क्या toISOStringकई क्रमिक हाइफ़न लौटा सकते हैं?
माइकल विक्रांत

माइकल - वह एक हाइफ़न के साथ पाए जाने वाले प्रत्येक हाइफ़न की जगह ले रहा है । अभी भी पता नहीं क्यों (शायद प्रतिस्थापन स्ट्रिंग एक विभाजक के लिए सिर्फ एक स्थान धारक है)। 'जी' का अर्थ है सभी घटनाएँ। पैटर्न आप के बारे में सोच रहे हैं / [-] + / जी
जेरार्ड ONEill

2
आपने मेरा दिन बना दिया। मैं जावास्क्रिप्ट में भयानक TimeZone हैंडलिंग को बायपास करने के लिए एक सरल तरीके से दिनों की खोज कर रहा हूं, और यह चाल है!
गुइल्यूम एफ

10

// UTC/GMT 0
document.write('UTC/GMT 0: ' + (new Date()).toISOString().slice(0, 19).replace(/[^0-9]/g, "")); // 20150812013509

// Client local time
document.write('<br/>Local time: ' + (new Date(Date.now()-(new Date()).getTimezoneOffset() * 60000)).toISOString().slice(0, 19).replace(/[^0-9]/g, "")); // 20150812113509


यह वह उत्तर है जिसका मैंने उपयोग किया। एक लाइनर जो समय क्षेत्र को ध्यान में रखता है। मूल पोस्टर के प्रश्न का उत्तर देने के लिए, हम कर सकते हैं: (नई तिथि (Date.now) (- (नई तिथि) ()। GetTimezoneOffset () * 60000))। ToISOString ()। प्रतिस्थापित (/ [0-9] /)। जी, "")। स्लाइस (0,8)
टमाटर

thx, YYYY-MM-DD i का उपयोग करने के लिए: नई तिथि (Date.now () - (new) (getTimezoneOffset () * 60000) .toISOString ()। slice (0, 10) .replace (/ [)। ^ 0-9] / जी, "-")
निक हम्फ्री

7

var someDate = new Date();
var dateFormated = someDate.toISOString().substr(0,10);

console.log(dateFormated);


बहुत अकलमंद। धन्यवाद
JMaylin

4
नई तारीख से काम नहीं करेगा (समयसीमा है और Date.toISOString () UTC है) मेरा जवाब देखिए।
डॉरमाउस

@ डोरमौसम यह दूसरा तरीका नहीं है? new Date()एक नई तिथि वस्तु बनाता है जो सिर्फ एनआर के आसपास एक आवरण है। 1970/01/01 के बाद से एमएस 00: 00: 00.000 यूटीसी। फिर toISOStringस्थानीय समय क्षेत्र में प्रिंट करता है।
स्टिजन डे विट

UTC में Nope, Date.toISOString () प्रिंट करता है।
छात्रावास

7

एक और तरीका यह है toLocaleDateStringकि स्वीडन, लिथुआनिया, हंगरी, दक्षिण कोरिया, जैसे स्थानीय -डेटियन प्रारूप प्रारूप मानक के साथ उपयोग किया जाए ...

date.toLocaleDateString('se')

सीमांकक हटाने के लिए ( -) गैर-अंकों की जगह लेने की बात है:

console.log( new Date().toLocaleDateString('se').replace(/\D/g, '') );

इसके पास संभावित त्रुटि नहीं है जिसे आप यूटीसी तिथि प्रारूपों के साथ प्राप्त कर सकते हैं: स्थानीय समय क्षेत्र में तारीख की तुलना में यूटीसी तिथि एक दिन की हो सकती है।


6

आप वर्ष में दिनांक प्राप्त करने के लिए बस इस एक लाइन कोड का उपयोग कर सकते हैं

var date = new Date().getFullYear() + "-" + (parseInt(new Date().getMonth()) + 1) + "-" + new Date().getDate();

5

इस थ्रेड में सबसे लोकप्रिय उत्तर के लिए थोड़ा सा सरलीकृत संस्करण https://stackoverflow.com/a/3067896/5437379 :

function toYYYYMMDD(d) {
    var yyyy = d.getFullYear().toString();
    var mm = (d.getMonth() + 101).toString().slice(-2);
    var dd = (d.getDate() + 100).toString().slice(-2);
    return yyyy + mm + dd;
}

5

डेटफॉर्मट एक बहुत ही इस्तेमाल किया जाने वाला पैकेज है।

कैसे इस्तेमाल करे:

dateformatएनपीएम से डाउनलोड और इंस्टॉल करें । अपने मॉड्यूल में इसकी आवश्यकता है:

const dateFormat = require('dateformat');

और फिर अपना सामान प्रारूपित करें:

const myYYYYmmddDate = dateformat(new Date(), 'yyyy-mm-dd');


4

यह लड़का यहाँ => http://blog.stevenlevithan.com/archives/date-time-format ने format()जावास्क्रिप्ट की Dateवस्तु के लिए एक फ़ंक्शन लिखा , इसलिए इसे परिचित शाब्दिक स्वरूपों के साथ उपयोग किया जा सकता है।

अगर आपको अपने ऐप के जावास्क्रिप्ट में फुल फीचर्ड डेट फॉर्मेटिंग की जरूरत है, तो इसका इस्तेमाल करें। अन्यथा यदि आप जो करना चाहते हैं वह एक बंद है, तो गेटएयर (), गेटमार्ट (), गेटडाय () प्राप्त करना संभवत: सबसे आसान है।


4

@ Oo के उत्तर से कार्य करना, यह आपको प्रारूप स्ट्रिंग के अनुसार दिनांक के स्ट्रिंग को वापस देगा। आप आसानी से वर्ष और मिलीसेकंड के लिए 2 अंकों का वर्ष जोड़ सकते हैं और यदि आपको उनकी आवश्यकता है।

Date.prototype.getFromFormat = function(format) {
    var yyyy = this.getFullYear().toString();
    format = format.replace(/yyyy/g, yyyy)
    var mm = (this.getMonth()+1).toString(); 
    format = format.replace(/mm/g, (mm[1]?mm:"0"+mm[0]));
    var dd  = this.getDate().toString();
    format = format.replace(/dd/g, (dd[1]?dd:"0"+dd[0]));
    var hh = this.getHours().toString();
    format = format.replace(/hh/g, (hh[1]?hh:"0"+hh[0]));
    var ii = this.getMinutes().toString();
    format = format.replace(/ii/g, (ii[1]?ii:"0"+ii[0]));
    var ss  = this.getSeconds().toString();
    format = format.replace(/ss/g, (ss[1]?ss:"0"+ss[0]));
    return format;
};

d = new Date();
var date = d.getFromFormat('yyyy-mm-dd hh:ii:ss');
alert(date);

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


4

यह कोड पियरे गुइलबर्ट के जवाब के लिए ठीक है:

(यह 10000 साल बाद भी काम करता है)

YYYYMMDD=new Date().toISOString().slice(0,new Date().toISOString().indexOf("T")).replace(/-/g,"")

4

ऐसा लगता है कि म्यूटूल प्रदान करता है Date().format(): https://mootools.net/more/docs/1.6.0/Types/Date

मुझे यकीन नहीं है अगर यह सिर्फ इस विशेष कार्य के लिए शामिल करने लायक है।


3

जब मुझे ऐसा करने की आवश्यकता होती है, तो मैं आमतौर पर नीचे दिए गए कोड का उपयोग करता हूं।

var date = new Date($.now());
var dateString = (date.getFullYear() + '-'
    + ('0' + (date.getMonth() + 1)).slice(-2)
    + '-' + ('0' + (date.getDate())).slice(-2));
console.log(dateString); //Will print "2015-09-18" when this comment was written

समझाने के लिए .slice (-2) हमें स्ट्रिंग के अंतिम दो अक्षर देता है।

तो कोई बात नहीं, हम "0" को दिन या महीने में जोड़ सकते हैं, और अंतिम दो के लिए पूछ सकते हैं क्योंकि हम हमेशा वही दो हैं जो हम चाहते हैं।

तो अगर MyDate.getMonth () 9 वापस आता है, तो यह होगा:

("0" + "9") // Giving us "09"

इस तरह से .slice (-2) को जोड़ने पर हमें अंतिम दो अक्षर मिलते हैं:

("0" + "9").slice(-2)

"09"

लेकिन अगर date.getMonth () 10 देता है, तो यह होगा:

("0" + "10") // Giving us "010"

इसलिए जोड़ना .llice (-2) हमें अंतिम दो अक्षर देता है, या:

("0" + "10").slice(-2)

"10"


3

सादगी और पठनीयता के लिए एक और उत्तर देना।
इसके अलावा, मौजूदा पूर्वनिर्धारित वर्ग के सदस्यों को नए तरीकों से संपादित करने के लिए प्रोत्साहित नहीं किया जाता है:

function getDateInYYYYMMDD() {
    let currentDate = new Date();

    // year
    let yyyy = '' + currentDate.getFullYear();

    // month
    let mm = ('0' + (currentDate.getMonth() + 1));  // prepend 0 // +1 is because Jan is 0
    mm = mm.substr(mm.length - 2);                  // take last 2 chars

    // day
    let dd = ('0' + currentDate.getDate());         // prepend 0
    dd = dd.substr(dd.length - 2);                  // take last 2 chars

    return yyyy + "" + mm + "" + dd;
}

var currentDateYYYYMMDD = getDateInYYYYMMDD();
console.log('currentDateYYYYMMDD: ' + currentDateYYYYMMDD);


2

यदि आपको एक अतिरिक्त (लेकिन छोटी) लाइब्रेरी सहित कोई आपत्ति नहीं है, तो Sugar.js जावास्क्रिप्ट में तारीखों के साथ काम करने के लिए बहुत अच्छी कार्यक्षमता प्रदान करता है । किसी दिनांक को प्रारूपित करने के लिए, प्रारूप फ़ंक्शन का उपयोग करें :

new Date().format("{yyyy}{MM}{dd}")

2

yyyymmdd=x=>(f=x=>(x<10&&'0')+x,x.getFullYear()+f(x.getMonth()+1)+f(x.getDate()));
alert(yyyymmdd(new Date));


1
अपने उत्तर में कुछ विवरण जोड़ने से आपको उत्थान मिलेगा कि आप इस कोड में जो कुछ कर रहे हैं उसका थोड़ा सा वर्णन करने का प्रयास करें ताकि दूसरे इसे और अधिक स्पष्ट रूप से समझ सकें।
मुहम्मद ओमर असलम

इसके बदले में सख्त मोड या टाइपस्क्रिप्ट का उपयोग करें "f f, yyyymmdd = x => ..."। ययमयमद और च अनभ ु व हैं।
अधिकतम


2

पैडस्टार्ट का उपयोग करें :

Date.prototype.yyyymmdd = function() {
    return [
        this.getFullYear(),
        (this.getMonth()+1).toString().padStart(2, '0'), // getMonth() is zero-based
        this.getDate().toString().padStart(2, '0')
    ].join('-');
};

1

यहाँ एक अधिक सामान्य दृष्टिकोण है जो दिनांक और समय दोनों घटकों की अनुमति देता है और संख्या या स्ट्रिंग के रूप में पहचान योग्य है।

दिनांक आईएसओ प्रारूप की संख्या के आधार पर, एक स्थानीय समय क्षेत्र में परिवर्तित करें और गैर-अंकों को हटा दें। अर्थात:

// monkey patch version
Date.prototype.IsoNum = function (n) {
    var tzoffset = this.getTimezoneOffset() * 60000; //offset in milliseconds
    var localISOTime = (new Date(this - tzoffset)).toISOString().slice(0,-1);
    return localISOTime.replace(/[-T:\.Z]/g, '').substring(0,n || 20); // YYYYMMDD
}

प्रयोग

var d = new Date();
// Tue Jul 28 2015 15:02:53 GMT+0200 (W. Europe Daylight Time)
console.log(d.IsoNum(8));  // "20150728"
console.log(d.IsoNum(12)); // "201507281502"
console.log(d.IsoNum());   // "20150728150253272"

1

देशी जावास्क्रिप्ट:

new Date().toLocaleString('zu-ZA').slice(0,10).replace(/-/g,'');

1
यह महीने को 2 अंक सुनिश्चित करने के लिए 0 के साथ महीनों को पैड नहीं करता है।
अत्तिला सेसेरेमी

आप सही हे। मैंने बाद में इस पर खुद गौर किया। आपको दोहरे अंकों के महीनों और दिनों में फॉर्मेट की तारीख का सावधानीपूर्वक परीक्षण करना होगा।
लोनी बेस्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.