如何在JavaScript中获取当前日期?
当前回答
能够以自定义格式呈现,并在不同地区使用月份名称:
const locale = 'en-us';
const d = new Date(date);
const day = d.getDate();
const month = d.toLocaleString(locale, { month: 'long' });
const year = d.getFullYear();
const time = d.toLocaleString(locale, { hour12: false, hour: 'numeric', minute: 'numeric'});
return `${month} ${day}, ${year} @ ${time}`; // May 5, 2019 @ 23:41
其他回答
每次都可以:
var now=新日期();var day=(“0”+now.getDate()).slice(-2);var month=(“0”+(现在.getMonth()+1)).sslice(-2);var today=now.getFullYear()+“-”+(月)+“”+(日);console.log(今天);
如果您想要对日期格式进行更精细的控制,我强烈建议您查看momentjs。非常棒的图书馆-只有5KB。http://momentjs.com/
Date.prototype.toLocalFullDateStringYYYYMMDDHHMMSS = function () {
if (this != null && this != undefined) {
let str = this.getFullYear();
str += "-" + round(this.getMonth() + 1);
str += "-" + round(this.getDate());
str += "T";
str += round(this.getHours());
str += ":" + round(this.getMinutes());
str += ":" + round(this.getSeconds());
return str;
} else {
return this;
}
function round(n){
if(n < 10){
return "0" + n;
}
else return n;
}};
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',''));
如果在“当前日期”之前,你正在考虑“今天”,那么这个技巧可能对你有用:
> new Date(3600000*Math.floor(Date.now()/3600000))
2020-05-07T07:00:00.000Z
这样,您将获得时间为0:00:00的日期实例。
操作原理很简单:我们获取当前时间戳,并将其除以1天,以毫秒表示。我们会得到一个分数。通过使用Math.floor,我们去掉了分数,所以我们得到了一个整数。现在,如果我们将它乘以一天(同样是以毫秒为单位),我们会得到一个日期时间戳,时间恰好在一天的开始。
> now = Date.now()
1588837459929
> daysInMs = now/3600000
441343.73886916664
> justDays = Math.floor(daysInMs)
441343
> today = justDays*3600000
1588834800000
> new Date(today)
2020-05-07T07:00:00.000Z
干净简单。