如何在JavaScript中获取当前日期?
当前回答
重要提示:不要使用:var today=new Date();
但是var dateToday=new Date();,例如,var今天没有表示任何内容。
其他回答
试试看:
var currentDate=新日期()var day=currentDate.getDate()var month=currentDate.getMonth()+1var year=currentDate.getFullYear()document.write(“<b>”+天+“/”+月+“/“+年+”</b>”)
结果如下
15/2/2012
Try
`${Date()}`.slice(4,15)
console.log(`${Date()}`.slice(4,15))
这里我们使用标准的JS功能:模板文本、转换为字符串的Date对象和切片。这可能是满足OP要求的最短解决方案(没有时间,只有日期)
最新编辑:2019年8月23日date fns库的工作方式与moment.js非常相似,但占用空间要小得多。它可以让您快速选择要包含在项目中的函数,这样您就不必编译整个库来格式化今天的日期。如果您的项目不能选择最小的第三方库,我支持塞缪尔·梅多斯(Samuel Meddows)的公认解决方案。
保存下面的历史,因为它帮助了一些人。但从记录上看,它相当粗糙,很容易在没有警告的情况下被打破,这篇文章中的大多数解决方案也是如此
编辑2017年7月2日单行JS解决方案:
tl;博士var todaysDate=新日期(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i)?new Date(Date.now()).toLocaleString().split(“”)[0].splite(',')[0]:新日期(Date.nnow()).ToLocaleSstring().spit(“')[1]+“”+新日期(Date.now(”).toLocal eString).splite“”)[2]+“”+new日期(Date:now().toLocaleString;edge,ff最新,&chrome返回todaysDate=“2/7/2017”“works”*在IE10中+
解释
我发现IE10和IE Edge的做法有点不同。。想想看吧以new Date(Date.now()).toLocaleString()作为输入,
IE10返回:
"Tuesday, February 07, 2017 2:58:25 PM"
我可以写一个大的长函数和FTFY。但你真的应该用moment.js来做这些。我的脚本只是清理了这一点,并为您提供了扩展的传统美国符号:>todaysDate=“2017年3月6日”
IE EDGE返回:
"2/7/2017 2:59:27 PM"
当然,这不可能那么容易。Edge的日期字符串在每个可见字符串之间都有不可见的“•”字符。因此,我们现在不仅要检查第一个字符是否是数字,还要检查前3个字符,因为事实证明,整个日期范围内的任何一个字符最终都会在某个点上是点或斜线。所以为了保持简单,只需.slice()开头的三个字符(针对未来恶作剧的小缓冲区),然后检查数字。应该注意的是,这些不可见的点可能会在代码中持续存在。如果你有更大的计划,而不仅仅是将这个字符串打印到你的视图中,我可能会深入研究。
⑪更新了一个衬垫:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
读起来很糟糕。怎么样:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
原始答案
我给你准备了一个单行本:
new Date(Date.now()).toLocaleString().split(', ')[0];
[1]会给你一天的时间。
像这样漂亮地打印日期。
2015年6月1日上午11:36:48
https://gist.github.com/Gerst20051/7d72693f722bbb0f6b58
如果您希望对日期格式进行更精细的控制,我强烈建议您查看日期FNS。
它是一个很棒的库,比Moment.js小得多。它是一种基于函数的方法,比其他基于类的库更快。它提供了迄今为止所需的大量操作。