如何在JavaScript中获取当前date?

如何在JavaScript中获取当前date?

使用new Date()生成一个包含当前date和时间的新Date对象。

 var today = new Date(); var dd = today.getDate(); var mm = today.getMonth()+1; //January is 0! var yyyy = today.getFullYear(); if(dd<10) { dd = '0'+dd } if(mm<10) { mm = '0'+mm } today = mm + '/' + dd + '/' + yyyy; document.write(today); 
 var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/'); document.write(utc); 

更新! ,向下滚动

如果你想要一些简单的东西给最终用户… Also, fixed a small suffix issue in the first version below. Now properly returns suffix. Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

 var objToday = new Date(), weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'), dayOfWeek = weekday[objToday.getDay()], domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(), dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder, months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'), curMonth = months[objToday.getMonth()], curYear = objToday.getFullYear(), curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()), curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(), curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(), curMeridiem = objToday.getHours() > 12 ? "PM" : "AM"; var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear; document.getElementsByTagName('h1')[0].textContent = today; 
 <h1></h1> 

如果你只是想要一个没有时间信息的date,使用:

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

尝试这个:

 var currentDate = new Date() var day = currentDate.getDate() var month = currentDate.getMonth() + 1 var year = currentDate.getFullYear() document.write("<b>" + day + "/" + month + "/" + year + "</b>") 

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

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

 var m = moment().format("DD/MM/YYYY"); document.write(m); 
 <script src="ajax/libs/moment.js/2.14.1/moment.min.js"></script> 
 var d = (new Date()).toString().split(' ').splice(1,3).join(' '); document.write(d) 
 var date = new Date().toLocaleDateString("en-US"); 

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

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

MSDN上的文章 。 关于MDN的更多信息

这每次都有效:

  var now = new Date(); var day = ("0" + now.getDate()).slice(-2); var month = ("0" + (now.getMonth() + 1)).slice(-2); var today = now.getFullYear() + "-" + (month) + "-" + (day); document.write(today); 

最短的可能:

 let today = new Date().toISOString().slice(0, 10) 

它返回"2016-03-10"

您可以使用Date.js库扩展date对象,因此您可以有.today()方法。

更清洁,更简单的版本:

 new Date().toLocaleString(); 

结果用户的区域设置 而异

2/27/2017,9:15:41 AM

你可以得到当前的date调用静态方法现在是这样的:

 var now = Date.now() 

参考:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now

Varun的回答没有考虑TimezoneOffset 。 这是一个版本:

 var d = new Date() new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11 

TimezoneOffset是分钟,而Date构造函数需要几毫秒,因此乘以60000

如果你想要一个简单的DD/MM/YYYY格式,我只是想出了这个简单的解决scheme,虽然它不会前缀缺less零。

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

结果:

“Wed Feb 03 2016”

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

也会工作

你可以使用这个

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

如果你正在使用jQuery。 试试这个class轮:

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

这是格式化date的惯例

  • d – 一个月中的某天(不是前导零)
  • dd – 月份(两位数字)
  • o – 一年中的一天(无前导零)
  • oo – 一年中的一天(三位数字)
  • D – 天名短
  • DD – 天名长
  • m – 年的月份(不是前导零)
  • 毫米 – 一年中的月份(两位数字)
  • M – 月份名称短
  • MM – 月份名称长
  • y – 年(两位数字)
  • 年(四位数)

这里是jQuery datepicker的参考

你可以检查这个

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

请参阅Date()构造函数的文档。 链接

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

var currentDate=new Date().toLocaleString().slice(0,10);

单行JS解决scheme:

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

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

编辑2/7/2017

我发现IE10和IE Edge的做法有点不一样..去图。 用new Date(Date.now()).toLocaleString()作为input,

IE10返回:

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

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

IE浏览器返回:

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

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

∴更新一行:

 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 date = new Date(); var TimeStamp = date.toLocaleString(); function CurrentTime(){ alert(TimeStamp); } 

这将获取当前时间,将其传递给基于位置的string,然后可以调用CurrentTime函数来显示时间。 对我来说,这将是获得某些东西时间戳的最有效的方法。

 var dateTimeToday = new Date(); var dateToday = new Date( dateTimeToday.getFullYear(), (dateTimeToday.getMonth() + 1) /*Jan = 0! */, dateTimeToday.getDate(), 0, 0, 0, 0); 

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

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

这可能会帮助你

 var date = new Date(); console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear()); 

这将以dd / MM / yyyy格式打印当前date

漂亮打印这样的date。

2015年6月1日上午11:36:48

https://gist.github.com/Gerst20051/7d72693f722bbb0f6b58

2.39KB缩小。 一个文件。 https://github.com/rhroyston/clock-js

只是想帮助…

在这里输入图像描述

 (function() { var d = new Date(); return new Date(d - d % 86400000); })()