协慌网

登录 贡献 社区

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

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

答案

使用new 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);

这将以 mm / dd / yyyy 的格式为您提供今天的日期。

只需改变today = mm +'/'+ dd +'/'+ yyyy;你想要的任何格式。

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

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

更新! ,向下滚动

如果你想为最终用户提供一些简单的东西...... 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>

UBBER UPDATE经过多次拖延,我终于GitHubbed并用我自己用过的最终解决方案更新了这个。甚至还有一些最后一分钟的编辑让它更甜!如果您正在寻找旧的jsFiddle,请看这个

此更新有两种口味,但仍然相对较小,但不如我上面的原始答案那么小。如果你想要非常小,那就去吧。
另请注意:这仍然比 moment.js 更臃肿。虽然 moment.js 很好,但是它有许多世俗的方法,这需要学习时刻,好像它是一种语言。我这里使用与PHP相同的通用格式:日期

快速链接

风味 1 new Date().format(String)我的个人收藏。我知道禁忌,但在日期对象上工作得很好。只要注意日期对象可能有的任何其他 mod。

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

Flavor 2 dateFormat(Date, String)更传统的一体化方法。具有以前的所有能力,但是通过带有 Date param 的方法调用。

//  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 。有关完整列表,请参阅我的自述文件

此 mod 还有更长的预制格式列表。要使用预制格式,只需输入其密钥名称即可。 dateFormat(new Date(), 'pretty-a');

  • '复合'
    • 'commonLogFormat'=='d / M / Y:G:i:s'
    • 'exif'=='Y:m:d G:我:s'
    • 'isoYearWeek'=='Y \\ WW'
    • 'isoYearWeek2'=='Y - \\ WW'
    • 'isoYearWeekDay'=='Y \\ WWj'
    • 'isoYearWeekDay2'=='Y - \\ WW-j'
    • 'mySQL'=='Ymd h:i:s'
    • 'postgreSQL'=='Yz'
    • 'postgreSQL2'=='Yz'
    • 'soap'=='Ymd \\ TH:我:su'
    • 'soap2'=='Ymd \\ TH:我:s.uP'
    • 'unixTimestamp'=='@U'
    • 'xmlrpc'=='Ymd \\ TG:i:s'
    • 'xmlrpcCompact'=='Ymd \\ tGis'
    • 'wddx'=='Ynj \\ TG:我:s'
  • “常量”
    • 'AMERICAN'=='F j Y'
    • 'AMERICANSHORT'=='m / d / Y'
    • 'AMERICANSHORTWTIME'=='m / d / Y h:i:sA'
    • 'ATOM'=='Ymd \\ TH:我:sP'
    • 'COOKIE'=='我 dMY H:我:是 T'
    • 'EUROPEAN'=='j F Y'
    • 'EUROPEANSHORT'=='dmY'
    • 'EUROPEANSHORTWTIME'=='dmY H:i:s'
    • 'ISO8601'=='Ymd \\ TH:我:sO'
    • '法律'=='j F Y'
    • 'RFC822'=='D d M y H:i:s O'
    • 'RFC850'=='我的 H:我:是 T'
    • 'RFC1036'=='D d M y H:i:s O'
    • 'RFC1123'=='D d MYH:i:s O'
    • 'RFC2822'=='D d MYH:i:s O'
    • 'RFC3339'=='Ymd \\ TH:我:sP'
    • 'RSS'=='D d MYH:i:s O'
    • 'W3C'=='Ymd \\ TH:我:sP'
  • '漂亮'
    • '漂亮' 一个 '=='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'
    • 'pretty-d'=='n / d / Y'
    • 'pretty-e'=='F jS - g:ia'
    • 'pretty-f'=='g:iA'

您可能会注意到,您可以使用 double \来转义字符。