如何在JavaScript中获取当前日期

javascript date date-formatting


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




Answer 1 Samuel Meddows


使用 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 +'/'+ yyyy; 只需更改= mm +'/'+ dd +'/'+ yyyy; 您想要的任何格式。




Answer 2 Varun Natraaj


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

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




Answer 3 SpYk3HH


更新!,向下滚动

如果您想为最终用户提供一些简单易用的东西... 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经过长时间的拖延,我终于在GitHub上进行了整理,并用自己一直使用的最终解决方案对其进行了更新。它甚至在最后一刻进行了一些编辑,使其更甜美!如果您正在寻找旧的jsFiddle,请参阅this

此更新有2种样式,虽然相对于我上面的原始答案还不算小,但仍然相对较小。如果您要很小,那就去吧。
另请注意:这仍然比moment.js少一些。imo虽然moment.js很不错,但它有太多世俗的方法,需要像学习语言一样学习瞬间。我的使用与PHP相同的通用格式:date。

快速链接

风味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) 更传统的多合一方法。具有以前的所有功能,但通过带有Date参数的方法调用。

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

奖金风味(需要jQuery) $.date(Date, String) 这不仅包含简单的 format 选项,还包含更多内容。它扩展了基础Date对象,并包含诸如 addDays 之类的方法。有关更多信息,请参见Git

在此mod中,格式字符受PHP:date启发。有关完整列表,请参阅我的自述文件

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

  • 'compound'
    • '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'=='Ymd h:i:s'
    • 'postgreSQL'=='Yz'
    • 'postgreSQL2'=='Yz'
    • '肥皂'=='Ymd \\ TH:i:su'
    • 'soap2'=='Ymd \\ TH:i:s.uP'
    • 'unixTimestamp'=='@U'
    • 'xmlrpc'=='Ymd \\ TG:i:s'
    • 'xmlrpcCompact'=='Ymd \\ tGis'
    • 'wddx'=='Ynj \\ TG:i:s'
  • 'constants'
    • '美国'=='F j Y'
    • 'AMERICANSHORT'=='m / d / Y'
    • 'AMERICANSHORTWTIME'=='m / d / Y h:i:sA'
    • 'ATOM'=='Ymd \\ TH:i:sP'
    • 'COOKIE'=='l dMY H:i:s T'
    • '欧洲'=='j FY'
    • 'EUROPEANSHORT'=='dmY'
    • 'EUROPEANSHORTWTIME'=='dmY H:i:s'
    • 'ISO8601'=='Ymd \\ TH:i:sO'
    • '法律'=='j FY'
    • 'RFC822'=='D d M y H:i:s O'
    • 'RFC850'=='l dMy H:i:s 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:i:sP'
    • 'RSS'=='D d MYH:i:s O'
    • 'W3C'=='Ymd \\ TH:i:sP'
  • 'pretty'
    • 'pretty-a'=='g:i.sA l jS \\ o \\ f FY'
    • 'pretty-b'=='g:iA l jS \\ o \\ f FY'
    • 'pretty-c'=='n / d / Y g:iA'
    • 'pretty-d'=='n / d / Y'
    • 'pretty-e'=='F jS-g:ia'
    • '漂亮-f'=='g:iA'

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





Answer 4 Damjan Pavlica


最短的时间。

要得到 "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)

另外,您可以将语言环境作为参数传递,例如 toLocaleDateString("sr") 等。




Answer 5 Marshal


如果你只是想要一个没有时间信息的日期,使用。

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

document.write(today);