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



Answers

var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

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

Question

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




单行JS解决方案:

TL;博士

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];

边缘,ff最新,&铬返回todaysDate = "2/7/2017"
“作品”*在IE10 +中

编辑2/7/2017

我发现IE10和IE Edge做的事情有点不同..去图。 用new Date(Date.now()).toLocaleString()作为输入,

IE10返回:

"Tuesday, February 07, 2017 2:58:25 PM"

我可以写一个很长的函数和FTFY。 但你真的应该使用moment.js这个东西。 我的剧本只是清除了这一点,并给你扩大了传统的美国符号: > todaysDate = "March 06, 2017"

IE EDGE返回:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

当然,这并不容易。 边缘的日期字符串在每个可见字符之间都有不可见的“•”字符。 因此,我们现在不仅要检查第一个字符是否是数字,而是前3个字符,因为在整个日期范围内的任何单个字符最终都会在某点处成为点或斜线。 所以为了简单.slice() ,只需.slice()前三个字符(对未来shenanigans的小缓冲区),然后检查数字。 应该注意的是,这些看不见的点可能会持续存在于您的代码中。 如果你有更大的计划,而不是把这个字符串打印到你的视图中,我可能会深入研究。

∴更新单行:

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]会给你一天的时间。




你可以结帐

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

并参阅Date()构造函数的文档。 link




我不知道它是否会帮助任何人,但我使用它来获取今天的Date对象。

new Date( 3600000*Math.floor(Date.now()/3600000) )



我认为这是一个老问题,但最简单的方法如下:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

这将抓取当前时间,将其传递给基于位置的字符串,然后可以调用函数CurrentTime来显示时间。 对我而言,这将是获得某物时间戳的最有效方法。










你可以使用这个

<script>
function my_curr_date() {      
    var currentDate = new Date()
    var day = currentDate.getDate();
    var month = currentDate.getMonth() + 1;
    var year = currentDate.getFullYear();
    var my_date = month+"-"+day+"-"+year;
    document.getElementById("dateField").value=my_date;    
}
</script>

HTML是

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>



如果您只想要一个没有时间信息的日期,请使用:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);




您可以使用Date.jsDate.js Date对象,因此您可以使用.today()方法。




如果你正在寻找更多的日期格式细化控制,我彻底推荐检查一下momentjs。 了不起的图书馆 - 只有5KB。 http://momentjs.com/




new Date().toISOString().slice(0,10); 

也可以工作




你可以使用moment.js: http://momentjs.com/ ://momentjs.com/

var m = moment().format("DD/MM/YYYY");

document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>




var date = new Date().toLocaleDateString("en-US");

另外,您可以使用两个参数调用toLocaleDateString方法:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

关于MSDN 。 有关MDN上的此方法的更多信息。




如果你想要一个简单的DD/MM/YYYY格式,我只是想出了这个简单的解决方案,尽管它不会在缺少零的前面加上前缀。

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






Related