date date - 如何格式化JavaScript日期





format js (25)


這是我為我的npm插件實現的

var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];

var Days = [
  "Sunday", "Monday", "Tuesday", "Wednesday",
  "Thursday", "Friday", "Saturday"
];

var formatDate = function(dt,format){
  format = format.replace('ss', pad(dt.getSeconds(),2));
  format = format.replace('s', dt.getSeconds());
  format = format.replace('dd', pad(dt.getDate(),2));
  format = format.replace('d', dt.getDate());
  format = format.replace('mm', pad(dt.getMinutes(),2));
  format = format.replace('m', dt.getMinutes());
  format = format.replace('MMMM', monthNames[dt.getMonth()]);
  format = format.replace('MMM', monthNames[dt.getMonth()].substring(0,3));
  format = format.replace('MM', pad(dt.getMonth()+1,2));
  format = format.replace(/M(?![ao])/, dt.getMonth()+1);
  format = format.replace('DD', Days[dt.getDay()]);
  format = format.replace(/D(?!e)/, Days[dt.getDay()].substring(0,3));
  format = format.replace('yyyy', dt.getFullYear());
  format = format.replace('YYYY', dt.getFullYear());
  format = format.replace('yy', (dt.getFullYear()+"").substring(2));
  format = format.replace('YY', (dt.getFullYear()+"").substring(2));
  format = format.replace('HH', pad(dt.getHours(),2));
  format = format.replace('H', dt.getHours());
  return format;
}

pad = function(n, width, z) {
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}

如何將JavaScript日期對象格式化為10-Aug-2010打印?




受奇妙的正則表達式解決方案的啟發,我突然有了這個頭腦分裂的想法:

var D = Date().toString().split(" ");
document.getElementById("demo").innerHTML = D[2] + "-" + D[1] + "-" + D[3];



我使用以下。它很簡單,工作正常。

 var dtFormat = require('dtformat');
   var today = new Date();
   dtFormat(today, "dddd, mmmm dS, yyyy, h:MM:ss TT");

或這個:

var now = new Date()
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
var formattedDate = now.getDate()  + "-" + months[now.getMonth()] + "-" + now.getFullYear()
alert(formattedDate)



使用toLocaleDateString();

toLocaleDateString()方法返回一個字符串,其中包含日期的日期部分的語言敏感表示。 locale和options參數讓應用程序指定應該使用其格式約定的語言,並允許自定義函數的行為。

您可以通過選項為不同的鍵傳遞值:

  1. 天:
    當天的表示。
    可能的值是“數字”,“2位”。
  2. 工作日:
    週日的表示。
    可能的值是“窄”,“短”,“長”。
  3. 年:
    今年的表現。
    可能的值是“數字”,“2位”。
  4. 月:
    月份的表示。
    可能的值是“數字”,“2位”,“窄”,“短”,“長”。
  5. 小時:
    小時的表示。
    可能的值是“數字”,“2位”。
  6. 分鐘:分鐘的表示。
    可能的值是“數字”,“2位”。
  7. 第二:
    第二個的表示。
    可能的值是“數字”,2位“。

所有這些鍵都是可選的。您可以根據您的要求更改選項值的數量。

對於不同的語言:

  1. “en-US”:適用於英語
  2. “hi-IN”:用於印地語
  3. “ja-JP”:適用於日語

您可以使用更多的語言選項。

例如

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today  = new Date();

console.log(today.toLocaleDateString("en-US"));
console.log(today.toLocaleDateString("en-US",options));
console.log(today.toLocaleDateString("hi-IN", options));

// Outputs will be -
9/17/2016
Saturday, September 17, 2016
शनिवार, 17 सितंबर 2016

你也可以使用toLocaleString()方法來達到同樣的目的。 唯一的區別是這個函數提供了你不通過任何選項的時間。

// Example
9/17/2016, 1:21:34 PM

參考文獻:

對於toLocaleString()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

對於toLocaleDateString()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString







自定義格式功能:

對於固定格式,一個簡單的功能可以完成工作。 以下示例生成國際格式YYYY-MM-DD:

function dateToYMD(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1; //Month from 0 to 11
    var y = date.getFullYear();
    return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
}

console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

OP格式可以像下面這樣生成:

function dateToYMD(date) {
    var strArray=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var d = date.getDate();
    var m = strArray[date.getMonth()];
    var y = date.getFullYear();
    return '' + (d <= 9 ? '0' + d : d) + '-' + m + '-' + y;
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5

注意:但是,擴展JavaScript標準庫通常不是一個好主意(例如,通過將此函數添加到Date的原型中)。

更高級的功能可以基於格式參數生成可配置的輸出。

如果編寫一個格式化函數的時間太長了,那麼有很多的庫都圍繞它來做。 其他一些答案已經列舉了他們。 但是越來越多的依賴關係也與此相反。

標準ECMAScript格式化功能:

由於更新版本的ECMAScript, Date類具有一些特定的格式功能:

toDateString :依賴於實現,只顯示日期。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.todatestring

new Date().toDateString(); // e.g. "Fri Nov 11 2016"

toISOString :顯示ISO 8601日期和時間。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.toisostring

new Date().toISOString(); // e.g. "2016-11-21T08:00:00.000Z"

toJSON :JSON的字符串。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tojson

new Date().toJSON(); // e.g. "2016-11-21T08:00:00.000Z"

toLocaleDateString :依賴於實現,日期為區域設置格式。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaledatestring

new Date().toLocaleDateString(); // e.g. "21/11/2016"

toLocaleString :依賴於實現,以區域設置格式顯示日期和時間。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocalestring

new Date().toLocaleString(); // e.g. "21/11/2016, 08:00:00 AM"

toLocaleTimeString :依賴於實現,是區域設置格式的時間。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaletimestring

new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"

toString :日期的通用toString。

http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring

new Date().toString(); // e.g. "Fri Nov 21 2016 08:00:00 GMT+0100 (W. Europe Standard Time)"

注意:可以使用這些格式生成自定義輸出

new Date().toISOString().slice(0,10); //return YYYY-MM-DD

示例代碼片段:

console.log("1) "+  new Date().toDateString());
console.log("2) "+  new Date().toISOString());
console.log("3) "+  new Date().toJSON());
console.log("4) "+  new Date().toLocaleDateString());
console.log("5) "+  new Date().toLocaleString());
console.log("6) "+  new Date().toLocaleTimeString());
console.log("7) "+  new Date().toString());
console.log("8) "+  new Date().toISOString().slice(0,10));




function formatDate(date) {
  var monthNames = [
    "January", "February", "March",
    "April", "May", "June", "July",
    "August", "September", "October",
    "November", "December"
  ];

  var day = date.getDate();
  var monthIndex = date.getMonth();
  var year = date.getFullYear();

  return day + ' ' + monthNames[monthIndex] + ' ' + year;
}

console.log(formatDate(new Date()));  // show current date-time in console

您可以編輯數組monthNames以使用Jan,Feb,Mar等。




DateFormatter.formatDate(new Date(2010,7,10), 'DD-MMM-YYYY')

=> 10-Aug-2010

DateFormatter.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss')

=> 2017-11-22 19:52:37

DateFormatter.formatDate(new Date(2005, 1, 2, 3, 4, 5), 'D DD DDD DDDD, M MM MMM MMMM, YY YYYY, h hh H HH, m mm, s ss, a A')

=> 2 02 Wed Wednesday, 2 02 Feb February, 05 2005, 3 03 3 03, 4 04, 5 05, am AM

var DateFormatter = {
  monthNames: [
    "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"
  ],
  dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  formatDate: function (date, format) {
    var self = this;
    format = self.getProperDigits(format, /d+/gi, date.getDate());
    format = self.getProperDigits(format, /M+/g, date.getMonth() + 1);
    format = format.replace(/y+/gi, function (y) {
      var len = y.length;
      var year = date.getFullYear();
      if (len == 2)
        return (year + "").slice(-2);
      else if (len == 4)
        return year;
      return y;
    })
    format = self.getProperDigits(format, /H+/g, date.getHours());
    format = self.getProperDigits(format, /h+/g, self.getHours12(date.getHours()));
    format = self.getProperDigits(format, /m+/g, date.getMinutes());
    format = self.getProperDigits(format, /s+/gi, date.getSeconds());
    format = format.replace(/a/ig, function (a) {
      var amPm = self.getAmPm(date.getHours())
      if (a === 'A')
        return amPm.toUpperCase();
      return amPm;
    })
    format = self.getFullOr3Letters(format, /d+/gi, self.dayNames, date.getDay())
    format = self.getFullOr3Letters(format, /M+/g, self.monthNames, date.getMonth())
    return format;
  },
  getProperDigits: function (format, regex, value) {
    return format.replace(regex, function (m) {
      var length = m.length;
      if (length == 1)
        return value;
      else if (length == 2)
        return ('0' + value).slice(-2);
      return m;
    })
  },
  getHours12: function (hours) {
    // https://.com/questions/10556879/changing-the-1-24-hour-to-1-12-hour-for-the-gethours-method
    return (hours + 24) % 12 || 12;
  },
  getAmPm: function (hours) {
    // https://.com/questions/8888491/how-do-you-display-javascript-datetime-in-12-hour-am-pm-format
    return hours >= 12 ? 'pm' : 'am';
  },
  getFullOr3Letters: function (format, regex, nameArray, value) {
    return format.replace(regex, function (s) {
      var len = s.length;
      if (len == 3)
        return nameArray[value].substr(0, 3);
      else if (len == 4)
        return nameArray[value];
      return s;
    })
  }
}

console.log(DateFormatter.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'));
console.log(DateFormatter.formatDate(new Date(), 'D DD DDD DDDD, M MM MMM MMMM, YY YYYY, h hh H HH, m mm, s ss, a A'));
console.log(DateFormatter.formatDate(new Date(2005, 1, 2, 3, 4, 5), 'D DD DDD DDDD, M MM MMM MMMM, YY YYYY, h hh H HH, m mm, s ss, a A'));

格式描述採用Ionic Framework(不支持Z,UTC時區偏移)

未經徹底測試




在JavaScript中格式化DateTimes的有用而靈活的方法是Intl.DateTimeFormat

var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));

結果是: "12-Oct-2017"

日期和時間格式可以使用options參數自定義。

Intl.DateTimeFormatIntl.DateTimeFormat用於啟用語言敏感日期和時間格式的對象的構造函數。

句法

new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])

參數

語言環境

可選的。 一個帶有BCP 47語言標籤的字符串或這種字符串的數組。 有關locales參數的一般形式和解釋,請參閱Intl頁面。 以下Unicode擴展鍵是允許的:

nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".

選項

可選的。 具有部分或全部以下屬性的對象:

localeMatcher

要使用的語言環境匹配算法。 可能的值是"lookup""best fit" ; 默認是"best fit" 。 有關此選項的信息,請參閱Intl頁面。

時區

要使用的時區。 唯一的值實現必須承認是"UTC" ; 缺省值是運行時的默認時區。 實現還可以識別IANA時區數據庫的時區名稱,例如"Asia/Shanghai""Asia/Kolkata""America/New_York"

hour12

是否使用12小時的時間(而不是24小時的時間)。 可能的值是truefalse ; 缺省值是語言環境相關的。

formatMatcher

要使用的格式匹配算法。 可能的值是"basic""best fit" ; 默認是"best fit" 。 有關使用此屬性的信息,請參閱以下段落。

以下屬性描述了要在格式化輸出中使用的日期時間組件及其所需表示。 實現需要至少支持以下子集:

weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute

實現可能支持其他子集,並且將針對所有可用的子集表示組合協商請求以找到最佳匹配。 兩種算法可用於此協商並由formatMatcher屬性選擇:完全指定的"basic"算法和依賴於實現的“最佳擬合”算法。

平日

週日的表示。 可能的值是"narrow""short""long"

時代

時代的代表。 可能的值是"narrow""short""long"

今年的表現。 可能的值是"numeric""2-digit"

月份的表示。 可能的值是"numeric""2-digit""narrow""short""long"

當天的表示。 可能的值是"numeric""2-digit"

小時

小時的表示。 可能的值是"numeric""2-digit"

分鐘

分鐘的表示。 可能的值是"numeric""2-digit"

第二

第二個的表示。 可能的值是"numeric""2-digit"

TIMEZONENAME

時區名稱的表示。 可能的值是"short""long" 。 每個日期時間組件屬性的默認值是未定義的,但是如果所有組件屬性都未定義,則假定年,月和日為"numeric"

在線檢查

更多細節




普通JavaScript是小型單播者的最佳選擇。

另一方面,如果你需要更多的日期, MomentJS是一個很好的解決方案。

例如:

moment().format('YYYY-MM-DD HH:m:s');     // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 11 hours ago
moment().endOf('day').fromNow();          // in 13 hours



嗨,檢查這是否有助於您的問題。

var d = new Date();

var options = {   
    day: 'numeric',
    month: 'long', 
    year: 'numeric'
};

console.log(d.toLocaleDateString('en-ZA', options));




我認為你可以使用非標準的 Date方法toLocaleFormat(formatString)

formatString:與C中strftime()函數預期的格式字符串格式相同

var today = new Date();
today.toLocaleFormat('%d-%b-%Y'); // 30-Dec-2011

參考文獻:







我可以使用無庫和無日期方法在一行中獲得所請求的格式,正則表達式:

var d = (new Date()).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3');
// date will be formatted as "14-Oct-2015" (pass any date object in place of 'new Date()')

更新:正如@RobG指出的那樣,Date.prototype.toString()的輸出是依賴於實現的。 因此,如果您使用此解決方案,請謹慎使用並在必要時修改您的實施。 在我的測試中,這在主要瀏覽器(Chrome,Safari,Firefox和IE)都返回相同字符串格式的北美地區可靠運行。




Sugar.js對Date對像有很好的擴展,包括一個Date.format方法。

文檔中的示例:

Date.create().format('{Weekday} {Month} {dd}, {yyyy}');

Date.create().format('{12hr}:{mm}{tt}')






以下是我剛剛寫的一些代碼,用於處理我正在處理的項目的日期格式。 它模仿PHP日期格式功能以適應我的需求。 隨意使用它,它只是擴展已經存在的Date()對象。 這可能不是最優雅的解決方案,但它可以滿足我的需求。

var d = new Date(); 
d_string = d.format("m/d/Y h:i:s");

/**************************************
 * Date class extension
 * 
 */
    // Provide month names
    Date.prototype.getMonthName = function(){
        var month_names = [
                            'January',
                            'February',
                            'March',
                            'April',
                            'May',
                            'June',
                            'July',
                            'August',
                            'September',
                            'October',
                            'November',
                            'December'
                        ];

        return month_names[this.getMonth()];
    }

    // Provide month abbreviation
    Date.prototype.getMonthAbbr = function(){
        var month_abbrs = [
                            'Jan',
                            'Feb',
                            'Mar',
                            'Apr',
                            'May',
                            'Jun',
                            'Jul',
                            'Aug',
                            'Sep',
                            'Oct',
                            'Nov',
                            'Dec'
                        ];

        return month_abbrs[this.getMonth()];
    }

    // Provide full day of week name
    Date.prototype.getDayFull = function(){
        var days_full = [
                            'Sunday',
                            'Monday',
                            'Tuesday',
                            'Wednesday',
                            'Thursday',
                            'Friday',
                            'Saturday'
                        ];
        return days_full[this.getDay()];
    };

    // Provide full day of week name
    Date.prototype.getDayAbbr = function(){
        var days_abbr = [
                            'Sun',
                            'Mon',
                            'Tue',
                            'Wed',
                            'Thur',
                            'Fri',
                            'Sat'
                        ];
        return days_abbr[this.getDay()];
    };

    // Provide the day of year 1-365
    Date.prototype.getDayOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((this - onejan) / 86400000);
    };

    // Provide the day suffix (st,nd,rd,th)
    Date.prototype.getDaySuffix = function() {
        var d = this.getDate();
        var sfx = ["th","st","nd","rd"];
        var val = d%100;

        return (sfx[(val-20)%10] || sfx[val] || sfx[0]);
    };

    // Provide Week of Year
    Date.prototype.getWeekOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
    } 

    // Provide if it is a leap year or not
    Date.prototype.isLeapYear = function(){
        var yr = this.getFullYear();

        if ((parseInt(yr)%4) == 0){
            if (parseInt(yr)%100 == 0){
                if (parseInt(yr)%400 != 0){
                    return false;
                }
                if (parseInt(yr)%400 == 0){
                    return true;
                }
            }
            if (parseInt(yr)%100 != 0){
                return true;
            }
        }
        if ((parseInt(yr)%4) != 0){
            return false;
        } 
    };

    // Provide Number of Days in a given month
    Date.prototype.getMonthDayCount = function() {
        var month_day_counts = [
                                    31,
                                    this.isLeapYear() ? 29 : 28,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31
                                ];

        return month_day_counts[this.getMonth()];
    } 

    // format provided date into this.format format
    Date.prototype.format = function(dateFormat){
        // break apart format string into array of characters
        dateFormat = dateFormat.split("");

        var date = this.getDate(),
            month = this.getMonth(),
            hours = this.getHours(),
            minutes = this.getMinutes(),
            seconds = this.getSeconds();
        // get all date properties ( based on PHP date object functionality )
        var date_props = {
            d: date < 10 ? '0'+date : date,
            D: this.getDayAbbr(),
            j: this.getDate(),
            l: this.getDayFull(),
            S: this.getDaySuffix(),
            w: this.getDay(),
            z: this.getDayOfYear(),
            W: this.getWeekOfYear(),
            F: this.getMonthName(),
            m: month < 10 ? '0'+(month+1) : month+1,
            M: this.getMonthAbbr(),
            n: month+1,
            t: this.getMonthDayCount(),
            L: this.isLeapYear() ? '1' : '0',
            Y: this.getFullYear(),
            y: this.getFullYear()+''.substring(2,4),
            a: hours > 12 ? 'pm' : 'am',
            A: hours > 12 ? 'PM' : 'AM',
            g: hours % 12 > 0 ? hours % 12 : 12,
            G: hours > 0 ? hours : "12",
            h: hours % 12 > 0 ? hours % 12 : 12,
            H: hours,
            i: minutes < 10 ? '0' + minutes : minutes,
            s: seconds < 10 ? '0' + seconds : seconds           
        };

        // loop through format array of characters and add matching data else add the format character (:,/, etc.)
        var date_string = "";
        for(var i=0;i<dateFormat.length;i++){
            var f = dateFormat[i];
            if(f.match(/[a-zA-Z]/g)){
                date_string += date_props[f] ? date_props[f] : '';
            } else {
                date_string += f;
            }
        }

        return date_string;
    };
/*
 *
 * END - Date class extension
 * 
 ************************************/



嘗試這個:

function init(){
    var d = new Date();
    var day = d.getDate();
    var x = d.toDateString().substr(4, 3);
    var year = d.getFullYear();
    document.querySelector("#mydate").innerHTML = day + '-' + x + '-' + year;
}
window.onload = init;
<div id="mydate"></div>




如果您需要使用普通JavaScript快速設置日期格式,請使用getDategetMonth + 1getFullYeargetHoursgetMinutes

var d = new Date();

var datestring = d.getDate()  + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();

// 16-5-2015 9:50

或者,如果你需要用零填充:

var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
    d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);

// 16-05-2015 09:50



我們有很多解決方案,但我認為最好的是Moment.js。 所以我個人建議使用Moment.js進行日期和時間操作。

console.log(moment().format('DD-MMM-YYYY'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>




那麼,我想要的是將今天的日期轉換為MySQL友好的日期字符串,如2012-06-23,並將該字符串用作我的一個查詢中的參數。 我找到的簡單解決方案是這樣的:

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

請記住,上述解決方案不考慮您的時區偏移量。

你可以考慮使用這個函數:

function toJSONLocal (date) {
    var local = new Date(date);
    local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return local.toJSON().slice(0, 10);
}

如果您在一天的開始/結束時執行此代碼,這將為您提供正確的日期。




好的 ,我們有一些叫做Intl的東西,這對於在JavaScript中格式化日期非常有用:

你的日期如下:

var date = '10/8/2010';

並且您通過使用新的Date()如下所示更改為Date:

date = new Date(date);

現在,您可以使用以下區域設置列表以任何方式對其進行格式化:

date = new Intl.DateTimeFormat('en-AU').format(date); // Australian date format: "8/10/2010" 


date = new Intl.DateTimeFormat('en-US').format(date); // USA date format: "10/8/2010" 


date = new Intl.DateTimeFormat('ar-EG').format(date);  // Arabic date format: "٨‏/١٠‏/٢٠١٠"

如果你確實需要上面提到的格式,你可以這樣做:

date = new Date(Date.UTC(2010, 7, 10, 0, 0, 0));
var options = {year: "numeric", month: "short", day: "numeric"};
date = new Intl.DateTimeFormat("en-AU", options).format(date).replace(/\s/g, '-');

結果將是:

"10-Aug-2010"

有關ECMAScript國際化API(國際)的更多詳細信息,請訪問here







使用ECMAScript 6字符串模板:

let d = new Date();
let formatted = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;

如果您需要更改分隔符:

const delimiter = '/';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);



不檢查TLD存在的解決方案是不完整的。

幾乎所有這些問題的答案都建議使用Regex來驗證電子郵件地址。我認為Regex只適用於初步驗證。似乎電子郵件地址的檢查驗證實際上是兩個獨立的問題:

1-驗證電子郵件格式:確保電子郵件符合RFC 5322中電子郵件的格式和模式以及TLD是否確實存在。可在here找到所有有效TLD的列表。

例如,雖然地址[email protected]將通過正則表達式,但它不是有效的電子郵件,因為ccc它不是IANA的頂級域名。

2-確保電子郵件確實存在:為此,唯一的選擇向用戶發送電子郵件





javascript date date-format time-format