如何在JavaScript中获取当前日期?


当前回答

已缩小2.39KB。一个文件。https://github.com/rhroyston/clock-js只是想帮忙。。。

其他回答

如果您想要一个简单的DD/MM/YYYY格式,我刚刚提出了这个简单的解决方案,尽管它没有前缀缺失的零。

var d=新日期();document.write([d.getDate(),d.getMonth()+1,d.getFullYear()].join('/'));

这是我目前最喜欢的,因为它既灵活又模块化。它是(至少)三个简单函数的集合:

/**
 * Returns an array with date / time information
 * Starts with year at index 0 up to index 6 for milliseconds
 * 
 * @param {Date} date   date object. If falsy, will take current time.
 * @returns {[]}
 */
getDateArray = function(date) {
    date = date || new Date();
    return [
        date.getFullYear(),
        exports.pad(date.getMonth()+1, 2),
        exports.pad(date.getDate(), 2),
        exports.pad(date.getHours(), 2),
        exports.pad(date.getMinutes(), 2),
        exports.pad(date.getSeconds(), 2),
        exports.pad(date.getMilliseconds(), 2)
    ];
};

下面是pad函数:

 /**
 * Pad a number with n digits
 *
 * @param {number} number   number to pad
 * @param {number} digits   number of total digits
 * @returns {string}
 */
exports.pad = function pad(number, digits) {
    return new Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
};

最后,我可以手动创建日期字符串,也可以使用一个简单的函数来实现:

/**
 * Returns nicely formatted date-time
 * @example 2015-02-10 16:01:12
 *
 * @param {object} date
 * @returns {string}
 */
exports.niceDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + ' ' + d[3] + ':' + d[4] + ':' + d[5];
};

/**
 * Returns a formatted date-time, optimized for machines
 * @example 2015-02-10_16-00-08
 *
 * @param {object} date
 * @returns {string}
 */
exports.roboDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + '_' + d[3] + '-' + d[4] + '-' + d[5];
};

大多数其他答案都提供了日期和时间。如果你只需要日期。

new Date().toISOString().split("T")[0]

输出

[ '2021-02-08', '06:07:44.629Z' ]

如果要使用/format,请使用replaceAll。

new Date().toISOString().split("T")[0].replaceAll("-", "/")

如果您需要其他格式,那么最好使用momentjs。

不需要图书馆,并且考虑了时区。

因为有时您需要在服务器上进行计算。这可以是独立于服务器时区的。

常量currentTimezoneOffset=8;//UTC+8:00时区,更改Date.prototype.yyyymmdd=函数(){返回[this.getFullYear(),(this.getMonth()+1).toString().padStart(2,“0”),//getMonththis.getDate().toString().padStart(2,“0”)].连接('-');};函数getTodayDateStr(){const d=新日期();//console.log(d);const d2=新日期(d.getTime()+(d.getTimezoneOffset()+currentTimezoneOffset*60)*60*1000);//console.log(d2,d2.yyyymmdd());返回d2.yyyymmdd();}console.log(getTodayDateStr());

As toISOString()将只返回当前UTC时间,而不是本地时间。我们必须使用“.toString()”函数生成日期,以yyyy-MM-dd格式获取日期,如

document.write(new Date(new Date).toString().split('GMT')[0]+'UTC').toISOString().spit('T')[0]);

以yyyy-MM-ddTHH:MM:ss格式获取日期和时间

document.write(new Date(new Date).toString().split('GMT')[0]+'UTC').toISOString().spit('.')[0]);

以yyyy-MM-dd HH:MM:ss格式获取日期和时间

document.write(new Date(new Date).toString().split('GMT')[0]+'UTC').toISOString().spit('.')[0].replace('T',''));