如何在 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 +'/'+ yyyy;
为您想要的任何格式。
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
replace
如果您要重用utc
变量(例如 )new Date(utc)
,请使用该选项,因为 Firefox 和 Safari 无法识别带破折号的日期。
尽可能最短。
要获得类似“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")
,等。
更新!, 向下滚动
如果你想要对最终用户来说简单漂亮的东西...... 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 更新经过多次拖延,我终于在GitHubbed 上更新了它,并使用我一直在为自己使用的最终解决方案进行了更新。它甚至在最后一刻进行了一些编辑以使其更甜蜜!如果您正在寻找旧的jsFiddle,请参阅此。
此更新有2种口味,仍然相对较小,但没有我上面的原始答案那么小。如果你想要非常小,那就去吧。
另请注意:这仍然没有 moment.js 那么臃肿。虽然moment.js很好,但是imo,它有太多世俗的方法,需要像学习语言一样学习moment。我这里使用与PHP相同的通用格式: date。
快速链接
- 日期格式.min.js 5.08 KB
- dateFormat.min.js 4.16 KB
风味 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
风味 2
dateFormat(Date, String)
更传统的多合一方法。具有前一个的所有能力,但通过带有 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。有关完整列表,请参阅我的自述文件
这个模组还有一个更长的预制格式列表。要使用预制格式,只需输入其密钥名称。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' == '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'
- '常数'
- '美国' == 'F j Y'
- '美国短裤' == '米/日/年'
- 'AMERICANSHORTWTIME' == 'm/d/Y h:i:sA'
- '原子' == 'Ymd\\TH:i:sP'
- 'COOKIE' == 'l dMY H:i:s T'
- '欧洲' == 'j FY'
- '欧洲短裤' == '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'
- '漂亮'
- '漂亮-a' == 'g:i.sA l jS \\o\\f FY'
- 'pretty-b' == 'g:iA l jS \\o\\f FY'
- '漂亮-c' == 'n/d/Y g:iA'
- '漂亮-d' == 'n/d/Y'
- '漂亮-e' == 'F jS - g:ia'
- '漂亮-f' == 'g:iA'
您可能会注意到,您可以使用 double\
来转义字符。
如果您只想要一个没有时间信息的日期,请使用:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);