मैं एक आईएसओ 8601 तारीख से yyyy-mm-dd प्रारूप होने की तारीख कैसे प्राप्त कर सकता हूं ?
मेरी 8601 तारीख है
2013-03-10T02:00:00Z
मैं निम्नलिखित कैसे प्राप्त कर सकता हूं?
2013-03-10
date.split("T")[0]करना होगा
मैं एक आईएसओ 8601 तारीख से yyyy-mm-dd प्रारूप होने की तारीख कैसे प्राप्त कर सकता हूं ?
मेरी 8601 तारीख है
2013-03-10T02:00:00Z
मैं निम्नलिखित कैसे प्राप्त कर सकता हूं?
2013-03-10
date.split("T")[0]करना होगा
जवाबों:
इसे इस्तेमाल करे
date = new Date('2013-03-10T02:00:00Z');
date.getFullYear()+'-' + (date.getMonth()+1) + '-'+date.getDate();//prints expected format.
अपडेट करें:-
जैसा कि टिप्पणियों में बताया गया है, मैं जरूरत पड़ने पर तारीख और महीने के लिए अग्रणी शून्य प्रिंट करने के लिए उत्तर अपडेट कर रहा हूं।
date = new Date('2013-08-03T02:00:00Z');
year = date.getFullYear();
month = date.getMonth()+1;
dt = date.getDate();
if (dt < 10) {
dt = '0' + dt;
}
if (month < 10) {
month = '0' + month;
}
console.log(year+'-' + month + '-'+dt);
बस स्ट्रिंग फसल:
var date = new Date("2013-03-10T02:00:00Z");
date.toISOString().substring(0, 10);
या यदि आपको स्ट्रिंग से केवल तारीख की आवश्यकता है।
var strDate = "2013-03-10T02:00:00Z";
strDate.substring(0, 10);
YYYYY-MM-DDवर्ष 10000 में होगा । इससे बचने के लिए आप इस पर विभाजित हो सकते हैं Tइसके बजाय चरित्र। ( En.wikipedia.org/wiki/Year_10,000_problem देखें )
Moment.js आपके लिए दिनांक स्वरूपण संभाल लेगा। यहां जावास्क्रिप्ट टैग के माध्यम से इसे शामिल करने का तरीका बताया गया है, और फिर एक तारीख को प्रारूपित करने के लिए Moment.js का उपयोग करने का एक उदाहरण है।
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
moment("2013-03-10T02:00:00Z").format("YYYY-MM-DD") // "2013-03-10"
momentसिर्फ स्वरूपण के लिए उपयोग करने के लिए एक बहुत बड़ा पुस्तकालय है। बल्कि डेट-फेंस का उपयोग करें जो आकार में बहुत छोटा है और समान कार्यक्षमता देता है।
.toISODateString()ऐसा होता, जैसा कि बहुत बार-बार होता है ...
यह वही है जो मैं केवल तारीख पाने के लिए करता हूं:
let isoDate = "2013-03-10T02:00:00Z";
alert(isoDate.split("T")[0]);
Moment.js एकल उपयोग मामले के लिए उपयोग करने के लिए बहुत बड़ी लाइब्रेरी है। मैं date-fnsइसके बजाय उपयोग करने की सलाह देता हूं । यह मूल रूप से एक बहुत छोटे बंडल आकार और कई के साथ Moment.js की सबसे अधिक कार्यक्षमता प्रदान करता है formatting options।
import format from 'date-fns/format'
format('2013-03-10T02:00:00Z', 'YYYY-MM-DD'); // 2013-03-10, YYYY-MM-dd for 2.x
एक बात ध्यान देने योग्य है कि, क्योंकि यह आईएसओ 8601 समय प्रारूप है, ब्राउज़र आमतौर पर UTC समय से स्थानीय समयक्षेत्र में परिवर्तित होता है। हालांकि यह सरल उपयोग मामला है जहां आप शायद कर सकते हैं '2013-03-10T02:00:00Z'.substring(0, 10);।
अधिक जटिल रूपांतरणों date-fnsके लिए रास्ता तय करना है।
let isoDate = "2013-03-10T02:00:00Z";
var d = new Date(isoDate);
d.toLocaleDateString('en-GB'); // dd/mm/yyyy
d.toLocaleDateString('en-US'); // mm/dd/yyyy
दिनांक ऑब्जेक्ट में अपना दिनांक पास करें:
var d = new Date('2013-03-10T02:00:00Z');
d.toLocaleDateString().replace(/\//g, '-');
उन सभी के लिए जो तारीख प्राप्त करने के लिए विभाजन, स्लाइस और अन्य स्ट्रिंग-आधारित प्रयासों का उपयोग कर रहे हैं, आप खुद को टाइमज़ोन से संबंधित विफल होने के लिए सेट कर सकते हैं!
एक आईएसओ-स्ट्रिंग में ज़ुलु-टाइमज़ोन है और इस समय-क्षेत्र के अनुसार एक तारीख है, जिसका अर्थ है, यह एक दिन पहले या बाद में वास्तविक समय-क्षेत्र का उपयोग कर सकता है, जिसे आपको अपनी परिवर्तन श्रृंखला में ध्यान में रखना होगा।
इस उदाहरण को देखें:
const timeZoneRelatedDate = new Date(2020, 0, 14, 0, 0);
console.log(timeZoneRelatedDate.toLocaleDateString(
'ja-JP',
{
year: 'numeric',
month: '2-digit',
day: '2-digit'
}
).replace(/\//gi,'-'));
// RESULT: "2020-01-14"
console.log(timeZoneRelatedDate.toISOString());
// RESULT: "2020-01-13T23:00:00.000Z" (for me in UTC+1)
console.log(timeZoneRelatedDate.toISOString().slice(0,10));
// RESULT: "2020-01-13"
यदि आपके पास कोई दिनांक ऑब्जेक्ट है:
let date = new Date()
let result = date.toISOString().split`T`[0]
console.log(result)
या
let date = new Date()
let result = date.toISOString().slice(0, 10)
console.log(result)
Rk rk के समाधान पर विस्तार करने के लिए : यदि आप समय को शामिल करने के लिए प्रारूप चाहते हैं, तो आप इसे toTimeString()अपनी स्ट्रिंग में जोड़ सकते हैं , और फिर GMT के भाग को निम्नानुसार खींच सकते हैं:
var d = new Date('2013-03-10T02:00:00Z');
var fd = d.toLocaleDateString() + ' ' + d.toTimeString().substring(0, d.toTimeString().indexOf("GMT"));
मैंने इसका उपयोग किया:
HTMLDatetoIsoDate(htmlDate){
let year = Number(htmlDate.toString().substring(0, 4))
let month = Number(htmlDate.toString().substring(5, 7))
let day = Number(htmlDate.toString().substring(8, 10))
return new Date(year, month - 1, day)
}
isoDateToHtmlDate(isoDate){
let date = new Date(isoDate);
let dtString = ''
let monthString = ''
if (date.getDate() < 10) {
dtString = '0' + date.getDate();
} else {
dtString = String(date.getDate())
}
if (date.getMonth()+1 < 10) {
monthString = '0' + Number(date.getMonth()+1);
} else {
monthString = String(date.getMonth()+1);
}
return date.getFullYear()+'-' + monthString + '-'+dtString
}
स्रोत: http://gooplus.fr/en/2017/07/13/angular2-typescript-isodate-to-html-date/
var d = new Date("Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)");
alert(d.toLocaleDateString());
let dt = new Date('2013-03-10T02:00:00Z');
let dd = dt.getDate();
let mm = dt.getMonth() + 1;
let yyyy = dt.getFullYear();
if (dd<10) {
dd = '0' + dd;
}
if (mm<10) {
mm = '0' + mm;
}
return yyyy + '-' + mm + '-' + dd;
नीचे दिए गए कोड का उपयोग करें। यह आपके लिए उपयोगी है।
let currentDate = new Date()
currentDate.toISOString()