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

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

解决办法

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

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 +'/'+ yyy;改为你希望的任何格式。

评论(13)

更新!, 向下滚动

如果你想要一些简单漂亮的东西给终端用户...另外,在下面的第一个版本中修复了一个小的后缀问题。现在正确地返回后缀。

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>

UBBER UPDATE 经过长时间的拖延,我终于GitHubbed并更新了这个我自己使用的最终解决方案。它甚至有一些最后一分钟的编辑,使它变得更甜美如果你想找以前的[jsFiddle,请看这个][2]。

这个更新有2种口味,仍然比较小,虽然没有我上面的原始答案那么小。
另外注意:这仍然没有 moment.js 那么臃肿。虽然moment.js很好,但我认为它有太多的世俗方法,这需要把moment当成一种语言来学习。我这里的使用了和PHP: date一样的通用格式。

快速链接

口味1 [new Date().format(String)][3] 我个人的最爱。我知道这个禁忌,但在Date对象上效果很好。只要注意你对Date对象可能有的任何其他修改。

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

口味2 [dateFormat(Date, String)][4] 更传统的一体式方法。拥有前者的所有能力,但通过带Date参数的方法调用。

//  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选项。它扩展了基本的Date对象,并包括诸如 "addDays "等方法。更多信息,请参见Git

在这个mod中,格式字符的灵感来自PHP: date。完整的列表,请看我的README

这个mod也有一个更长的预制格式列表。要使用一个预制的格式,只需输入它的关键名称。dateFormat(new Date(), 'pretty-a');

  • '复合'
    • 'commonLogFormat'== 'd/M/Y:G:i:s'
    • 'exif'== 'Y:m:d G:i:s'
    • 'isoYearWeek'== 'Y\WW'
    • 'isoYearWeek2'== 'Y-\WW'
    • 'isoYearWeekDay'== 'Y\WWj'
    • 'isoYearWeekDay2'== 'Y-\WW-j'
    • 'mySQL'== 'Y-m-d h:i:s'
    • 'postgreSQL'== 'Y.z'
    • 'postgreSQL2'== 'Yz'
    • 'soap'== 'Y-m-d\TH:i:s.u'
    • 'soap2'== 'Y-m-d\TH:i:s.uP'
    • 'unixTimestamp'== '@U'
    • 'xmlrpc'== 'Ymd\TG:i:s'
    • 'xmlrpcCompact'=='Ymd\tGis'
    • 'wddx'=='Y-n-j\TG:i:s'
  • 'constants&#39。
    • 'AMERICAN'=='F j Y'
    • 'AMERICANSHORT'== 'm/d/Y'
    • 'AMERICANSHORTWTIME'== 'm/d/Y h:i:sA'
    • 'ATOM'== 'Y-m-d\TH:i:sP'
    • 'COOKIE'== 'l d-M-Y H:i:s T'
    • 'EUROPEAN'== 'j F Y'
    • 'EUROPEANSHORT'== 'd.m.Y'
    • 'EUROPEANSHORTWTIME'=='d.m.Y H:i:s'
    • 'ISO8601'== 'Y-m-d\TH:i:sO'
    • 'LEGAL'== 'j F Y'
    • 'RFC822'== 'D d M y H:i:s O'
    • 'RFC850'== 'l d-M-y H:i:s T'
    • 'RFC1036'=='D d M y H:i:s O'
    • 'RFC1123'== 'D d M Y H:i:s O'
    • 'RFC2822'=='D d M Y H:i:s O'
    • 'RFC3339'== 'Y-m-d\TH:i:sP'
    • 'RSS'== 'D d M Y H:i:s O'
    • 'W3C'== 'Y-m-d\TH:i:sP'
  • 'pretty'
    • 'pretty-a'== 'g:i.sA l jS\o\f F Y'
    • 'pretty-b'== 'g:iA l jS \o\f F Y'
    • 'pretty-c'== 'n/d/Y g:iA&#39。
    • 'pretty-d' == 'n/d/Y'
    • 'pretty-e'== 'F jS - g:ia'
    • 'pretty-f' == 'g:iA'

*你可能注意到,你可以使用双倍的```来转义一个字符。


评论(6)

试试这个。

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

结果将是这样的

15/2/2012
评论(1)