zoukankan      html  css  js  c++  java
  • js date format

    http://stackoverflow.com/questions/3552461/how-to-format-javascript-date

    /*
     * Date Format 1.2.3
     * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
     * MIT license
     *
     * Includes enhancements by Scott Trenda <scott.trenda.net>
     * and Kris Kowal <cixar.com/~kris.kowal/>
     *
     * Accepts a date, a mask, or a date and a mask.
     * Returns a formatted version of the given date.
     * The date defaults to the current date/time.
     * The mask defaults to dateFormat.masks.default.
     */
    
    var dateFormat = function () {
        var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])1?|[LloSZ]|"[^"]*"|'[^']*'/g,
            timezone = /(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]d{4})?)/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);};
  • 相关阅读:
    webpack入门(1)
    react基础(2)
    react基础(1)
    react入门(5)
    react入门(4)
    react入门(3)
    webstorm出现黑色块光标
    微信小程序——组件(二)
    微信小程序——组件(一)
    react-native 在Xcode上传到iTunes Connect里报错
  • 原文地址:https://www.cnblogs.com/likem/p/4366304.html
Copyright © 2011-2022 走看看