How to get datetime in JavaScript?

前端 未结 7 1018
太阳男子
太阳男子 2020-11-28 03:33

How to get date time in JavaScript with format 31/12/2010 03:55 AM?

相关标签:
7条回答
  • 2020-11-28 04:13
    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);
    }
    

    Code corrected as of Sep 3 '12 at 10:11

    0 讨论(0)
  • 2020-11-28 04:14

    @Shadow Wizard's code should return 02:45 PM instead of 14:45 PM. So I modified his code a bit:

    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 + "";
    }
    
    0 讨论(0)
  • 2020-11-28 04:18

    If the format is "fixed" meaning you don't have to use other format you can have pure JavaScript instead of using whole library to format the date:

    //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>

    The variable strDateTime will hold the date/time in the format you desire and you should be able to tweak it pretty easily if you need.

    I'm using join as good practice, nothing more, it's better than adding strings together.

    0 讨论(0)
  • 2020-11-28 04:19

    You can convert Date to almost any format using the Snippet I have added below.

    Code:

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

    Other examples

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

    Snippet:

    Add following code taken from this link into your code.

    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),
                    ffffd:  dF.i18n.dayNames[D],
                    ffffdd: 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":      "ffffd mmm dd yyyy HH:MM:ss",
        shortDate:      "m/d/yy",
        mediumDate:     "mmm d, yyyy",
        longDate:       "mmmm d, yyyy",
        fullDate:       "ffffdd, 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);
    };
    
    0 讨论(0)
  • 2020-11-28 04:32

    Date().toLocaleString() returns this: 7/31/2018, 12:58:03 PM

    Pretty close - just drop the comma and the seconds:

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

    Results: 7/31/2018 12:58 PM

    0 讨论(0)
  • 2020-11-28 04:35
    var now = new Date();
    
    now.format("dd/MM/yyyy hh:mm TT");
    

    Get full details here: Flagrant Badassery » JavaScript Date Format

    0 讨论(0)
提交回复
热议问题