如何在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
(function() { var d = new Date(); return new Date(d - d % 86400000); })()