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


当前回答

您可能希望自动检索浏览器的区域设置名称,并将其作为toLocaleString()的第一个参数传递,以便传递其他选项:

//获取区域设置名称函数getLang(){if(navigator.languages!=未定义)返回navigator.languages[0];返回navigator.language;}//获取格式为yyyy-MM-ddThmmss的当前日期时间const time=new Date().toLocaleString(getLang(){小时12:假,年份:'数字',月份:'2-位',天:'2位数',小时:“数字”,minute:“数字”,第二个:“数字”}).replaceAll(“/”,“-”).replaceAll(“:”,“”).replace All(“”,“T”)console.log(“locale:”,getLang())console.log(时间)

结果可能如下:

locale: zh-TW
2022-09-13T171642

当您更改浏览器的区域设置时,时间和日期(如果需要)也会更改。

其他回答

如果您对YYYY-MM-DD格式感到满意,这也可以完成这项工作。

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

2018-03-10

如果您正在使用jQuery。试试这一行:

$.datepicker.formatDate('dd/mm/yy', new Date());

以下是格式化日期的惯例

d-月份的日期(无前导零)dd-月份的日期(两位数)o-一年中的某一天(无前导零)oo-一年中的一天(三位数)D-天名称缩写DD-日名称长m-一年中的月份(无前导零)mm-一年中的月份(两位数)M-月名缩写MM-月份名称长y-年(两位数)yy-年(四位数)

以下是jQuery日期选择器的参考

如果您想要对日期格式进行更精细的控制,我强烈建议您查看momentjs。非常棒的图书馆-只有5KB。http://momentjs.com/

我的解决方案使用字符串文字。了解更多信息。。。

//声明日期为dvar d=新日期()//日期的内联格式const exampleOne=`${d.getDay()}-${d.getMonth()+1}-${d.getFullYear()}`//一月为0,因此需要+1//使用特征线和运算符常量示例二=`+++++++++++带换行符和算术运算符示例新行上的年份:${d.getFullYear()}年份减(-)30年:${d.getFullYear()-30}你明白了。。。+++++++++++`console.log('============')console.log(示例一)console.log('============')console.log(示例二)

TL;博士

只有当您需要本地计算机(客户端)上的当前时间时,这里找到的大多数答案才是正确的,而本地计算机(客户机)是一个通常不可靠的源(它可能与其他系统不同)。

可靠的来源包括:

Web服务器的时钟(但确保已更新)时间API和CDN

细节

在Date实例上调用的方法将返回一个基于计算机本地时间的值。

更多详细信息可以在“MDN web docs”:JavaScript Date对象中找到。

为了方便您,我从他们的文档中添加了一条相关注释:

(…)获取日期和时间或其组件的基本方法都在本地(即主机系统)时区和偏移中工作。

提到这一点的另一个来源是:JavaScript日期和时间对象

需要注意的是,如果某人的时钟关闭了几个小时,或者他们在不同的时区,则Date对象将创建与您自己计算机上创建的时间不同的时间。

您可以使用的一些可靠来源是:

web服务器的时钟(首先检查是否正确设置)时间API和CDN:https://timezonedb.com/apihttp://worldtimeapi.orghttp://worldclockapi.comhttp://www.geonames.org/export/ws-overview.html其他相关API:https://www.programmableweb.com/category/time/api

但是,如果准确度对您的用例并不重要,或者如果您只需要日期与本地机器的时间相关,那么您可以安全地使用Javascript的date基本方法,如date.now()。