जावास्क्रिप्ट में डेटाइम कैसे प्राप्त करें?


जवाबों:


155

शब्दार्थ, आप शायद वन-लाइनर की तलाश कर रहे हैं

new Date().toLocaleString()

जो उपयोगकर्ता के स्थान में दिनांक को प्रारूपित करता है।

यदि आप वास्तव में तिथियों को प्रारूपित करने के विशिष्ट तरीके की तलाश में हैं, तो मैं क्षण की सलाह देता हूं । पुस्तकालय।


3
पल की सिफारिश करने के लिए धन्यवाद। जेएस पुस्तकालय; यह बढ़िया है।
कार्बोनटावेल

3
किसी को भी अपनी तिथि / समय कोड नहीं लिखना चाहिए (कुछ अन्य उत्तरों में)। कोने के मामलों की संख्या आश्चर्यजनक है। क्षण के लिए इकाई परीक्षण पृष्ठ पर जाएं। js ( momentjs.com/tests ) - 66701 परीक्षण हैं! बस इसका उपयोग करें, यह बहुत अच्छा है। या कोई अन्य लाइब्रेरी ढूंढें, लेकिन इसके लिए अपना कोड न लिखें, आपको बहुत कुछ याद होगा (मैंने अतीत में इसे गलत तरीके से गड़बड़ किया है)।
बग़ल में

1
मुझे समझ में नहीं आता है कि इस तरह से एक पंक्ति का उत्तर ढूंढना इतना कठिन क्यों था जो काम करता है। धन्यवाद।
तिमहसी २२

46

यदि प्रारूप "निश्चित" है, तो इसका मतलब यह है कि आपको तिथि को प्रारूपित करने के लिए पूरे पुस्तकालय का उपयोग करने के बजाय शुद्ध जावास्क्रिप्ट का उपयोग करने की आवश्यकता नहीं है:

//Pad given value to the left with "0"
function AddZero(num) {
    return (num >= 0 && num < 10) ? "0" + num : num + "";
}

window.onload = function() {
    var now = new Date();
    var strDateTime = [[AddZero(now.getDate()), 
        AddZero(now.getMonth() + 1), 
        now.getFullYear()].join("/"), 
        [AddZero(now.getHours()), 
        AddZero(now.getMinutes())].join(":"), 
        now.getHours() >= 12 ? "PM" : "AM"].join(" ");
    document.getElementById("Console").innerHTML = "Now: " + strDateTime;
};
<div id="Console"></div>

चर strDateTimeदिनांक / समय को आपकी इच्छा के अनुसार प्रारूप में रखेगा और आपको जरूरत पड़ने पर इसे आसानी से ट्विक करने में सक्षम होना चाहिए।

मैं joinअच्छे अभ्यास के रूप में उपयोग कर रहा हूं , इससे ज्यादा कुछ नहीं, यह एक साथ तार जोड़ने से बेहतर है।


@ जेन्स यह संभव के रूप में मानक के बारे में है, किसी भी ब्राउज़र की मूल तिथि / समय के तरीकों के लिए अलग-अलग वाक्यविन्यास होगा विश्वास करना मुश्किल है। :)
शैडो विजार्ड ईयर फॉर यू

2
महान समाधान, भी उपयोग प्रारूप के लिए बस AddZero (अब .getDate) और) स्वैप जोड़ें (Add। गुड लक और समाधान के लिए धन्यवाद
Gent

आपका कोड 14:45 PM के बजाय 02:45 PM पर वापस आ जाएगा। इसलिए मैंने आपके कोड को थोड़ा संशोधित किया: फ़ंक्शन getNowDateTimeStr () {var now = new Date (); var घंटे = now.getHours () - (now.getHours ()> = 12; 12: 0); वापसी [[AddZero (now.getDate ()), AddZero (now.getMonth () + 1), now.getFullYear ()]। Join ("/"), [AddZero (घंटा), AddZero (now.getMinutes ())। )]। Join (":"), now.getHours ()> = 12? "पीएम": "एएम"]। शामिल (""); } // पैड को "0" फ़ंक्शन AddZero (संख्या) {वापसी (संख्या> = 0 && संख्या <10) के साथ बाईं ओर दिया गया है? "0" + संख्या: संख्या + ""; }
डालमपेट

22
var now = new Date();

now.format("dd/MM/yyyy hh:mm TT");

यहाँ पूर्ण विवरण प्राप्त करें: फ्लैगेंट बदमाश »जावास्क्रिप्ट तिथि प्रारूप


मैंने पहले ही इस ब्लॉग की कोशिश की, और समय 20/50/2011 12:01 TT
nimi

2
एम गलत हैं। ऊपरी निचले हिस्से को स्विच करें, आपके पास मिनट है जहां महीना होना चाहिए और इसके विपरीत।
क्विबल्सम

9

Date().toLocaleString() यह रिटर्न: 7/31/2018, 12:58:03 PM

बहुत करीब - बस अल्पविराम और सेकंड ड्रॉप करें:

new Date().toLocaleString().replace(",","").replace(/:.. /," ");

परिणाम: 7/31/2018 12:58 PM


5
function pad_2(number)
{
     return (number < 10 ? '0' : '') + number;
}

function hours(date)
{
    var hours = date.getHours();
    if(hours > 12)
        return hours - 12; // Substract 12 hours when 13:00 and more
    return hours;
}

function am_pm(date)
{
    if(date.getHours()==0 && date.getMinutes()==0 && date.getSeconds()==0)
        return ''; // No AM for MidNight
    if(date.getHours()==12 && date.getMinutes()==0 && date.getSeconds()==0)
        return ''; // No PM for Noon
    if(date.getHours()<12)
        return ' AM';
    return ' PM';
}

function date_format(date)
{
     return pad_2(date.getDate()) + '/' +
            pad_2(date.getMonth()+1) + '/' +
            (date.getFullYear() + ' ').substring(2) +
            pad_2(hours(date)) + ':' +
            pad_2(date.getMinutes()) +
            am_pm(date);
}

10:11 बजे कोड 3 सितंबर 12 को सही किया गया


अपने काम की जांच करें। मैंने यह कोशिश की और आउटपुट के रूप में "03/06/112 05:02 PM" मिला। वहाँ केवल सही समय है। तिथि, माह और (जाहिर है) वर्ष सभी गलत हैं।
मुदित

5

आप नीचे जोड़े गए स्निपेट का उपयोग करके दिनांक को लगभग किसी भी प्रारूप में परिवर्तित कर सकते हैं।

कोड:

dateFormat(new Date(),"dd/mm/yy h:MM TT")
//"20/06/14 6:49 PM"

अन्य उदाहरण

// Can also be used as a standalone function
dateFormat(new Date(), "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM

dateFormat(new Date(),"dddd d mmmm yyyy")
//Monday 2 June 2014"

स्निपेट :

इस लिंक से लिए गए कोड को अपने कोड में जोड़ें।

var dateFormat = function () {
    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
        timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
        timezoneClip = /[^-+\dA-Z]/g,
        pad = function (val, len) {
            val = String(val);
            len = len || 2;
            while (val.length < len) val = "0" + val;
            return val;
        };

    // Regexes and supporting functions are cached through closure
    return function (date, mask, utc) {
        var dF = dateFormat;

        // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
        if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
            mask = date;
            date = undefined;
        }

        // Passing date through Date applies Date.parse, if necessary
        date = date ? new Date(date) : new Date;
        if (isNaN(date)) throw SyntaxError("invalid date");

        mask = String(dF.masks[mask] || mask || dF.masks["default"]);

        // Allow setting the utc argument via the mask
        if (mask.slice(0, 4) == "UTC:") {
            mask = mask.slice(4);
            utc = true;
        }

        var _ = utc ? "getUTC" : "get",
            d = date[_ + "Date"](),
            D = date[_ + "Day"](),
            m = date[_ + "Month"](),
            y = date[_ + "FullYear"](),
            H = date[_ + "Hours"](),
            M = date[_ + "Minutes"](),
            s = date[_ + "Seconds"](),
            L = date[_ + "Milliseconds"](),
            o = utc ? 0 : date.getTimezoneOffset(),
            flags = {
                d:    d,
                dd:   pad(d),
                ddd:  dF.i18n.dayNames[D],
                dddd: dF.i18n.dayNames[D + 7],
                m:    m + 1,
                mm:   pad(m + 1),
                mmm:  dF.i18n.monthNames[m],
                mmmm: dF.i18n.monthNames[m + 12],
                yy:   String(y).slice(2),
                yyyy: y,
                h:    H % 12 || 12,
                hh:   pad(H % 12 || 12),
                H:    H,
                HH:   pad(H),
                M:    M,
                MM:   pad(M),
                s:    s,
                ss:   pad(s),
                l:    pad(L, 3),
                L:    pad(L > 99 ? Math.round(L / 10) : L),
                t:    H < 12 ? "a"  : "p",
                tt:   H < 12 ? "am" : "pm",
                T:    H < 12 ? "A"  : "P",
                TT:   H < 12 ? "AM" : "PM",
                Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
                o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
                S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
            };

        return mask.replace(token, function ($0) {
            return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
        });
    };
}();

// Some common format strings
dateFormat.masks = {
    "default":      "ddd mmm dd yyyy HH:MM:ss",
    shortDate:      "m/d/yy",
    mediumDate:     "mmm d, yyyy",
    longDate:       "mmmm d, yyyy",
    fullDate:       "dddd, mmmm d, yyyy",
    shortTime:      "h:MM TT",
    mediumTime:     "h:MM:ss TT",
    longTime:       "h:MM:ss TT Z",
    isoDate:        "yyyy-mm-dd",
    isoTime:        "HH:MM:ss",
    isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
    dayNames: [
        "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
        "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
    ],
    monthNames: [
        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
        "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    ]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
    return dateFormat(this, mask, utc);
};

1

@ शैडो विजार्ड कोड को 14:45 PM के बजाय 02:45 PM पर वापस आना चाहिए। इसलिए मैंने उनके कोड को थोड़ा संशोधित किया:

function getNowDateTimeStr(){
 var now = new Date();
 var hour = now.getHours() - (now.getHours() >= 12 ? 12 : 0);
return [[AddZero(now.getDate()), AddZero(now.getMonth() + 1), now.getFullYear()].join("/"), [AddZero(hour), AddZero(now.getMinutes())].join(":"), now.getHours() >= 12 ? "PM" : "AM"].join(" ");
}

//Pad given value to the left with "0"
function AddZero(num) {
    return (num >= 0 && num < 10) ? "0" + num : num + "";
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.