如何在 JavaScript 中获取当前日期?
new Date()
生成一个包含当前日期和时间的新Date
对象。
注意:请务必保留原有的HTML标签。
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
这将以 mm/dd/yyyy 格式提供今天的日期。
只需将 today = mm +'/'+ dd +'/'+ yyyy;
更改为您希望的任何格式即可。
01
、02
、...、09
。 - zfmDate.prototype.toLocaleDateString()
方法是一种更灵活的解决方案。它从ECMAScript 5.1开始成为JavaScript的一部分,并且得到了所有现代浏览器的良好支持。[MDN:toLocaleDateString()
] (https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString) - Adam Brownvar utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
如果您要重新使用utc
变量,例如new Date(utc)
,请使用replace
选项,因为Firefox和Safari不识别带破折号的日期。
toUTCString()
返回的是协调世界时日期时间。 - Varun Natraajmoment( new Date().toJSON().slice(0, 10) )
。 - Kyle Hotchkiss尽可能地缩短。
要获取类似于“2018-08-03”的格式:
let today = new Date().toISOString().slice(0, 10)
console.log(today)
要获得类似于“8/3/2018”的格式:
let today = new Date().toLocaleDateString()
console.log(today)
此外,您可以将locale作为参数传递,例如toLocaleDateString("sr")
等。
已更新!,请向下滚动
如果您想让最终用户看到简单漂亮的东西... 另外,在下面的第一个版本中修复了一个小后缀问题。现在可以正确返回后缀。
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>
此次更新提供了两种选择,相对来说仍然很小,尽管不像我的原始答案那么小。如果你想要极小的代码,请使用原始答案。
还请注意:这仍然比 moment.js 更精简。虽然moment.js很好用,但在我看来,它有太多的方式,需要像学习一门语言一样去学习moment.js。我的代码使用与PHP: date相同的常见格式。
Flavor 1
new Date().format(String)
这是我的个人喜好。我知道这有些禁忌,但它在Date对象上非常好用。只需要注意可能对Date对象进行的其他修改即可。
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Flavor 2
dateFormat(Date, String)
这是一种更加传统的全能方法,具有前面介绍的所有功能,但是需要传入一个日期参数来调用。
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUS Flavor (需要jQuery)
$.date(Date, String)
这个插件不仅仅包含一个简单的format
选项,它扩展了基本的日期对象,并包括像addDays
这样的方法。更多信息请参见Git。
在这个模块中,格式字符受PHP:date启发。有关完整列表,请参见我的README。
此模块还具有更长的预定义格式列表。要使用预定义格式,只需输入其键名。dateFormat(new Date(), 'pretty-a');
正如你所注意到的,可以使用双重\
来转义一个字符。
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>")
结果将会如下所示
15/2/2012
如果你需要更精细的日期格式控制,我强烈推荐使用momentjs。它是一个很棒的库,大小只有5KB。http://momentjs.com/
var date = new Date().toLocaleDateString("en-US");
此外,您可以使用两个参数调用toLocaleDateString
方法:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
更多关于这种方法的信息请参见MDN。
new Date().toLocaleDateString("de-de")
对我来说很管用。 - user3772108new Date().toLocaleDateString("en-US", { "year": "numeric", "day": "numeric", "month": "long", });
。 - mikasa您可以使用moment.js:http://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>
moment().format("L")
来遵循当前的区域设置。 - Duncvar d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
将其分解为以下步骤:
(new Date()).toString()
返回 "Fri Jun 28 2013 15:30:18 GMT-0700 (PDT)"
(new Date()).toString().split(' ')
将上述字符串按照每个空格进行分割并返回以下数组:["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)"]
(new Date()).toString().split(' ').splice(1,3).join(' ')
获取以上数组的第二、三和四个值,使用空格连接它们,返回一个字符串"Jun 28 2013"
Date().split(' ').splice(1,3).join(' ')
。 - hyde
var currentTime = new Date();
- Hendriknew Date()
返回的是当前的时间,而不是当前的日期。这个区别很重要,如果你要将其与另一个没有时间组件(即在午夜)的日期进行比较。 - Steve BennettDate
对象。因此,即使问题不太清楚,预期的答案是获取当前系统日期和时间,这正是new Date()
返回的内容,所以对于最简明的答案+1给@Hendrik。 - Suncat2000