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


当前回答

var utc=new Date().toJSON().slice(0,10).replace(/-/g,'/');文档.写入(utc);

如果要重用utc变量,例如new Date(utc),请使用替换选项,因为Firefox和Safari无法识别带破折号的日期。

其他回答

如果在“当前日期”之前,你正在考虑“今天”,那么这个技巧可能对你有用:

> 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

干净简单。

试用Date.js

毫秒

date.js.millisecond(); // 0.00

date.js.second(); // 58

分钟

date.js.minute(); // 31

小时

date.js.hour(); // 6  (PM)

Days

date.js.day(); // Monday

date.js.week(); // (Week Of the Month / WOM) => 2

date.js.month(); // (Month) => November

TLM(三字母月)

date.js.tlmonth(); // (Month) => Dec

Year

date.js.year(); // (Year / String: "") => "2021"

date.js.season(); // (Fall / Season: seasons) => "fall"

当前时间(AM/PM)

date.js.time(); // (Time / Zone: "PDT/EDT etc.") => 10:04 AM

这有什么大不了的。。最干净的方法是

var currentDate=新日期().toLocaleString().slice(0,10);

使用JavaScript内置的Date.pr原型.toLocaleDateString()(MDN文档中有更多选项):

常量选项={月份:'2-位',天:'2位数',年份:'数字',};console.log(newDate().toLocaleDateString('en-US',选项));//年/月/日

我们可以使用具有良好浏览器支持的Intl.DateTimeFormat获得类似的行为。与toLocaleDateString()类似,我们可以传递带有选项的对象:

const date = new Date('Dec 2, 2021') // Thu Dec 16 2021 15:49:39 GMT-0600
const options = {
  day: '2-digit',
  month: '2-digit',
  year: 'numeric',
}
new Intl.DateTimeFormat('en-US', options).format(date) // '12/02/2021'

更清洁、更简单的版本:

new Date().toLocaleString();

结果因用户的语言环境而异:

2017年2月27日上午9:15:41