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

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

3930019 次浏览

使用 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;更改为您希望的任何格式。

更新! ,向下滚动

如果你想要一些简单漂亮的最终用户... ... 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 After much procrastination, I've finally GitHubbed and updated this with the final solution I've been using for myself. It's even had some last-minute edits to make it sweeter! If you're looking for the old jsFiddle, please see this.

This update comes in 2 flavors, still relatively small, though not as small as my above, original answer. If you want extremely small, go with that.
Also Note: This is still less bloated than moment.js. While moment.js is nice, imo, it has too many secular methods, which require learning moment as if it were a language. Mine here uses the same common format as PHP: date.

Quick Links

Flavor 1 new Date().format(String) My Personal Fav. I know the taboo but works great on the Date Object. Just be aware of any other mods you may have to the Date Object.

//  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

额外的风味(需要 jQuery) < a href = “ https://github.com/JDMcKinstry/jQuery-Date”rel = “ norefrer”> $.date(Date, String) 这不仅仅包含一个简单的 format选项。它扩展了基本 Date 对象并包括诸如 addDays之类的方法。有关详细信息,请参阅 Git

在这个模块中,格式字符的灵感来自于 PHP: 日期。如需完整的列表,请参阅我的 自述

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

  • “化合物”
    • ‘ commLogFormat’= =’d/M/Y: G: i: s’
    • ‘ exif’= = ‘ Y: m: d G: i: s’
    • ‘ isoYearWeek’= = ‘ YWW’
    • “ isoYearWeek2”= = “ Y-WW”
    • ‘ isoYearWeekDay’= = ‘ Y WWj’
    • ‘ isoYearWeekDay2’= = ‘ Y-WW-j’
    • ‘ mySQL’= = ‘ Y-m-d h: i: s’
    • ‘ postgreSQL’= = ‘ Y.z’
    • ‘ postgreSQL2’= = ‘ Yz’
    • 肥皂剧 = = ‘ 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’
  • “常数”
    • ‘ AMERICAN’= = ‘ FjY’
    • “美国空头”= = m/d/Y
    • ‘ American ShorTWTIME’= = m/d/Y h: i: sA’
    • ‘ ATOM’= = ‘ Y-m-d TH: i: sP’
    • “ COOKIE”= = “ l d-M-Y H: i: s T”
    • ‘ EUROPEAN’= = ‘ jFY’
    • “ EUROPEANSHORT”= =’d. m.Y”
    • ‘ EUROPEANSHORTWTIME’= =’d. m.Y H: i: s’
    • ‘ ISO8601’= = ‘ Y-m-d TH: i: sO’
    • ‘ LEGAL’= = ‘ jFY’
    • ‘ 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-a’= = ‘ g: i.sA.ljSofFY’
    • ‘ pretty-b’= = ‘ g: iA.ljSofFY’
    • ‘ pretty-c’= = ‘ n/d/Y g: iA’
    • ‘ pretty-d’= = ‘ n/d/Y’
    • ‘ pretty-e’= = ‘ FjS-g: ia’
    • ‘ pretty-f’= = ‘ g: iA’

正如您可能注意到的,您可以使用双 \来转义字符。


试试这个:

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

可以使用扩展 Date 对象的 Date. js库,因此可以使用. today ()方法。

如果您正在寻找对日期格式的更细粒度的控制,那么我完全推荐检查 Momentjs。非常棒的图书馆——而且只有5KB。 Http://momentjs.com/

你可以用这个

<script>
function my_curr_date() {
var currentDate = new Date()
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var my_date = month+"-"+day+"-"+year;
document.getElementById("dateField").value=my_date;
}
</script>

HTML 是

<body onload='return my_curr_date();'>
<input type='text' name='dateField' id='dateField' value='' />
</body>

var d = (new Date()).toString().split(' ').splice(1,3).join(' ');


document.write(d)

把它分成几个步骤:

  1. (new Date()).toString()发布“2013年6月28日星期五15:30:18 GMT-0700(PDT)”

  2. (new Date()).toString().split(' ')在每个空格上划分上面的字符串并返回如下数组: [“ Fri”,“ Jun”,“28”,“2013”,“15:31:14”,“ GMT-0700”,“(PDT)”]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ')从上面的数组中获取第二个、第三个和第四个值,用空格将它们连接起来,并返回一个字符串“ Jun 282013”

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

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

这招屡试不爽:

    var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
    

console.log(today);

(function() { var d = new Date(); return new Date(d - d % 86400000); })()
var date = new Date().toLocaleDateString("en-US");

此外,还可以使用两个参数调用方法 toLocaleDateString:

var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});

关于此方法的更多信息请参见 MDN

您可以使用 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>

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

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


document.write(today);

我认为这是一个古老的问题,但最简单的方法是这样的:

var date = new Date();
var TimeStamp = date.toLocaleString();


function CurrentTime(){
alert(TimeStamp);
}

这将获取当前时间,根据位置将其传递给一个字符串,然后您可以调用函数 CurrentTime 来显示时间。对我来说,这是获取某事时间戳最有效的方法。

这是我目前最喜欢的,因为它既灵活又模块化,它集合了(至少)三个简单的功能:

/**
* Returns an array with date / time information
* Starts with year at index 0 up to index 6 for milliseconds
*
* @param {Date} date   date object. If falsy, will take current time.
* @returns {[]}
*/
getDateArray = function(date) {
date = date || new Date();
return [
date.getFullYear(),
exports.pad(date.getMonth()+1, 2),
exports.pad(date.getDate(), 2),
exports.pad(date.getHours(), 2),
exports.pad(date.getMinutes(), 2),
exports.pad(date.getSeconds(), 2),
exports.pad(date.getMilliseconds(), 2)
];
};

下面是垫子的功能:

 /**
* Pad a number with n digits
*
* @param {number} number   number to pad
* @param {number} digits   number of total digits
* @returns {string}
*/
exports.pad = function pad(number, digits) {
return new Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
};

最后,我可以手工构建我的日期字符串,或者使用一个简单的函数来完成它:

/**
* Returns nicely formatted date-time
* @example 2015-02-10 16:01:12
*
* @param {object} date
* @returns {string}
*/
exports.niceDate = function(date) {
var d = exports.getDateArray(date);
return d[0] + '-' + d[1] + '-' + d[2] + ' ' + d[3] + ':' + d[4] + ':' + d[5];
};


/**
* Returns a formatted date-time, optimized for machines
* @example 2015-02-10_16-00-08
*
* @param {object} date
* @returns {string}
*/
exports.roboDate = function(date) {
var d = exports.getDateArray(date);
return d[0] + '-' + d[1] + '-' + d[2] + '_' + d[3] + '-' + d[4] + '-' + d[5];
};
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);

您可以像下面这样获得当前日期调用 static 方法:

var now = Date.now()

参考文献:

Https://developer.mozilla.org/en/docs/web/javascript/reference/global_objects/date/now

把日期打印成这样。

2015年6月1日上午11:36:48

Https://gist.github.com/gerst20051/7d72693f722bbb0f6b58

如果你想要一个简单的 DD/MM/YYYY格式,我只是想出了这个简单的解决方案,虽然它没有前缀缺少零。

var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );

Varun 的回答 并没有考虑到 时间偏移,这里有一个版本可以解释:

var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11

TimezoneOffset是分钟,而 Date 构造函数采用毫秒,因此乘以 60000

你可以看看这个

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

并参见 Date ()构造函数的文档。 链接

在 React js 中获取当前日期、月份、年份

如果在“当前日期”你想的是“今天”,那么这个技巧可能对你有用:

> new Date(3600000*Math.floor(Date.now()/3600000))
2020-05-07T07:00:00.000Z

这样你就可以得到今天的 日期实例与时间0:00:00。

操作原理非常简单: 我们将当前时间戳除以毫秒表示的1天。我们会得到一个分数。通过使用 数学,地板,我们去掉了分数,所以我们得到了一个整数。现在,如果我们将它乘以一天(同样以毫秒为单位) ,我们得到一个日期时间戳,其时间正好是一天开始的时间。

> now = Date.now()
1588837459929
> daysInMs = now/3600000
441343.73886916664
> justDays = Math.floor(daysInMs)
441343
> today = justDays*3600000
1588834800000
> new Date(today)
2020-05-07T07:00:00.000Z

干净利落。

new Date().toISOString().slice(0,10);

也行得通

这有什么大不了的. . 最干净的方法是

var currentDate=new Date().toLocaleString().slice(0,10);

最基本的

如果您对 Sun Jan 24 2016 21:23:07 GMT+0100 (CET)格式感到满意,可以使用下面的代码:

var today = new Date();

ToLocaleDateString ()

如果要格式化输出,可以考虑使用 强 > Date.prototype.toLocaleDateString():

var today = new Date().toLocaleDateString('de-DE', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
});

如果您今天(2016年1月24日)在一个现代浏览器上执行该代码,它将生成字符串 Sonntag, 24. Januar 2016。旧的浏览器可能会产生不同的结果,例如。IE < 11不支持区域设置或选项参数。

定制的

如果 强 > Date.prototype.toLocaleDateString()不够灵活,无法满足您的任何需求,您可能需要考虑创建一个自定义 Date 对象,它看起来像下面这样:

var DateObject = (function() {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var date = function(str) {
this.set(str);
};
date.prototype = {
set : function(str) {
var dateDef = str ? new Date(str) : new Date();
this.day = dateDef.getDate();
this.dayPadded = (this.day < 10) ? ("0" + this.day) : "" + this.day;
this.month = dateDef.getMonth() + 1;
this.monthPadded = (this.month < 10) ? ("0" + this.month) : "" + this.month;
this.monthName = monthNames[this.month - 1];
this.year = dateDef.getFullYear();
}
};
return date;
})();

如果你今天(2016年1月24日)包含了这段代码并执行了 new DateObject(),它会生成一个具有以下属性的对象:

day: 24
dayPadded: "24"
month: 1
monthPadded: "01"
monthName: "January"
year: 2016
new Date().toDateString();

结果:

2016年2月3日星期三

越短越好

为了得到像“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")等等。

2.39 KB 缩小。一个文件。 https://github.com/rhroyston/clock-js

我只是想帮忙。

enter image description here

更简洁的版本:

new Date().toLocaleString();

结果 各不相同根据使用者的 地点:

2017年2月27日,上午9:15:41

这个可能对你有帮助

var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

这将以 dd/MM/yyyy 格式打印当前日期

最新编辑: 8/23/19 约会库的工作方式与 等一下 JS非常相似,但是占用的空间要小得多。它可以让您精心挑选您想要包含在项目中的函数,这样您就不必编译整个库来格式化今天的日期。如果一个最低限度的第三方自由不是你的项目的一个选项,我赞同接受的解决方案由塞缪尔 Meddows 顶部。

把历史保存在下面,因为它帮助了一些人。但是正如这篇文章中的大多数解决方案一样,它非常粗糙,容易在没有任何警告的情况下被打破

编辑2/7/2017 一行 JS 解决方案:

博士

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

在 IE10 + 中,edge,ff best,& chrome return todaysDate = "2/7/2017" < br > “ works”*

解释

我发现 IE10和 IE Edge 做事情的方式有点不一样。 以 new Date(Date.now()).toLocaleString()作为输入,

IE10返回:

"Tuesday, February 07, 2017 2:58:25 PM"

我可以写一个大的长函数和 FTFY。但是 您确实应该使用 < a href = “ https://Momentjs.com/”rel = “ nofollow norefrer”> moment. js 来处理这些内容。我的脚本只是清理这一点,并给你 扩大传统的美国符号: > todaysDate = "March 06, 2017"

IE EDGE 回归:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

当然没那么简单。因此,我们现在不仅要检查第一个字符是否是数字,而且还要检查前3个字符,因为在整个日期范围内的任何一个字符最终都会在某个点上变成点或斜杠。因此,为了简单起见,只需要 。片()前三个字符(针对未来恶作剧的微型缓冲区) ,然后检查数字。应该注意的是,这些不可见的点可能潜在地持久存在于您的代码中。如果你有更大的计划而不仅仅是把这个字符串打印到你的视图上,我可能会深入研究一下。

更新的单行线:

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

读起来真糟糕,不如这样:

var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

原始答案

我给你准备了一句俏皮话:

new Date(Date.now()).toLocaleString().split(', ')[0];

[1]会给你一天的时间。

如果你正在使用 jQuery,试试这一行:

$.datepicker.formatDate('dd/mm/yy', new Date());

下面是格式化日期的约定

  • 每月 d 日(无前导零)
  • 月月日(两位数字)
  • 年的 o-day (没有前导零)
  • 一年中的每一天(三位数字)
  • 简称 D 日
  • DD-day name long
  • 年月(无前导零)
  • 年月(两位数字)
  • M 月的名字很短
  • 月名长
  • 年(两位数字)
  • 广州欢聚时代(四位数字)

下面是 jQuery数据采集器的参考文献

你可以使用我的日期 API 给出了日常使用的日期格式以及得到当前日期,昨天等。 怎么用 例如:。

 var dt = new Date();
/// ANY DATE YOU WANT --  dt = new Date(""July 21, 1983 01:15:00"")


dateObj = dt.getFormattedDate();


alert( dateObj.isToday() );
alert( dateObj.todayDay() );
alert( dateObj.monthNameDayYear() );

(function () {


fnDateProcessor = function () {
var that = this;


return {


yyyymmdd: function (separator) {
var fdate = this.formatDate(true, true) ,
separator = separator ? separator : "-";
return fdate.year + separator + fdate.month + separator + fdate.day;
},


monthNameDayYear: function () {
var fdate = this.formatDate(true, true);
return fdate.monthName + " " + fdate.day + ", " + fdate.year;
},


ddmmyyyy: function (separator) {
var fdate = this.formatDate(true, true) ,
separator = separator ? separator : "/";
return fdate.day + separator + fdate.month + separator + fdate.year;
},


meridianTime: function () {
var fdate = this.formatDate();
return fdate.hour + ":" + fdate.minute + " " + fdate.meridian;
},


monthDay: function (separator) {


var fdate = this.formatDate();
separator = checkSeparator(separator);
return fdate.monthName.substring(0, 3) + separator + fdate.day;


},


weekMonthDayYear: function () {
var fdate = this.formatDate();
//separator = checkSeparator(separator);


return fdate.weekDay + " " + fdate.monthName.substring(0, 3) +
fdate.day + " ," + fdate.year;
},


timeZoneInclusive: function () {


return new Date(that);
},


todayDay: function () { return new Date().getDate(); },
todayMonth: function () { return new Date().getMonth() + 1; },
dateDay: function () { return this.formatDate().day; },
dateMonth: function () { return this.formatDate().month; },
isToday: function () { return this.sameDate(new Date()); },
isYesterday: function () {
d = new Date(); d.setDate(d.getDate() - 1);
return this.sameDate(d);
},


formatDate: function () {
var zeroPaddedMnth = true, zeroPaddedDay = false,
zeroPaddedHr = false, zeroPaddedMin = true;
// Possible to take Options arg that overide / merge to defaults


var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];


var day = getFormattedDay(that.getDate(), zeroPaddedDay);
var monthIndex = that.getMonth();
var month = getFormattedMonth(monthIndex + 1, zeroPaddedMnth);
var year = that.getFullYear();
var wkDay = that.getDay();
var hour = getFormattedHour(that.getHours(), zeroPaddedHr);
var minute = getFormattedMinute(that.getMinutes(), zeroPaddedMin);
var meridian = getMeridian(that.getHours());


return {
"day": day, "monthName": monthNames[monthIndex], "month": month,
"weekDay": weekDays[wkDay], "year": year, "hour": hour, "minute": minute,
"meridian": meridian
};
},


compareDate: function (d2) {     /// validates if caller is less than argument
d2 = _isString(d2) ? new Date(d2) : d2;


return !this.sameDate(d2)
&& typeof d2 != "number"
? that < d2 : false;
},


sameDate: function (d) {
return that.getFullYear() === d.getFullYear()
&& that.getDate() === d.getDate()
&& that.getMonth() === d.getMonth();
},


dateAfter: function (separator) {
var fdate = this.formatDate();
var separator = separator ? separator : "-";
return fdate.year + separator + fdate.month + separator + (fdate.day + 1);
}


};


};




function _isString(obj) {
var toString = Object.prototype.toString;
return toString.call(obj) == '[object String]';
}


function checkSeparator(separator) {
// NOT GENERIC ... NEEDS REVISION
switch (separator) {
case " ": sep = separator; break;
case ",": sep = " ,"; break;
default:
sep = " "; break;
}


return sep;
}


function getFormattedHour(h, zeroPadded) {
h = h % 12;
h = h ? h : 12;    //  12 instead of 00
return zeroPadded ? addZero(h) : h;
}


function getFormattedMinute(m, zeroPadded) {


return zeroPadded ? addZero(m) : m;
}


function getFormattedDay(dd, zeroPadded) {


return zeroPadded ? addZero(dd) : dd;
}
function getFormattedMonth(mm, zeroPadded) {


return zeroPadded ? addZero(mm) : mm;
}


function getMeridian(hr) {


return hr >= 12 ? 'PM' : 'AM';
}


function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}




Date.prototype.getFormattedDate = fnDateProcessor;


} ());

最简短的答案是: new Date().toJSON().slice(0,10)

如果您对 YYYY-MM-DD 格式感到满意,这也可以完成这项工作。

new Date().toISOString().split('T')[0]

2018-03-10

因为 toISOString()只返回当前的 UTC 时间,而不是本地时间。我们必须用。函数来获取 yyyy-MM-dd格式的日期,如

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);

To get date and time into in yyyy-MM-ddTHH:mm:ss format

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);

yyyy-MM-dd HH:mm:ss格式获取日期和时间

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));

如果您正在寻找对日期格式更细粒度的控制,我完全推荐检查 日期-FNS

这是一个很棒的库,比 等一下小得多。这是一种基于函数的方法,比其他基于类的库要快得多。它提供了在日期期间所需的大量操作。

如果您想格式化为字符串。

statusUpdate = "time " + new Date(Date.now()).toLocaleTimeString();

输出: “时间上午11:30:53”

这个答案是为那些寻找具有 ISO-8601格式和时区的日期的人准备的。

对于那些不想包含任何日期库的人来说,它是纯 JavaScript。

var date = new Date();
var timeZone = date.toString();
// Get timezone ('GMT+0200')
var timeZoneIndex = timeZone.indexOf('GMT');
// Cut optional string after timezone ('(heure de Paris)')
var optionalTimeZoneIndex = timeZone.indexOf('(');
if(optionalTimeZoneIndex != -1){
timeZone = timeZone.substring(timeZoneIndex, optionalTimeZoneIndex);
}
else{
timeZone = timeZone.substring(timeZoneIndex);
}
// Get date with JSON format ('2019-01-23T16:28:27.000Z')
var formattedDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON();
// Cut ms
formattedDate = formattedDate.substring(0,formattedDate.indexOf('.'));
// Add timezone
formattedDate = formattedDate + ' ' + timeZone;
console.log(formattedDate);

在控制台中打印如下内容:

2019年01月23日17:12:52格林尼治标准时间 + 0100

https://jsfiddle.net/n9mszhjc/4/

具有以自定义格式呈现并在不同地区使用月份名称的能力:

const locale = 'en-us';
const d = new Date(date);


const day = d.getDate();
const month = d.toLocaleString(locale, { month: 'long' });
const year = d.getFullYear();


const time = d.toLocaleString(locale, { hour12: false, hour: 'numeric', minute: 'numeric'});


return `${month} ${day}, ${year} @ ${time}`; // May 5, 2019 @ 23:41

获取格式化的日期非常有用

let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);

这有很大作用:

    var today = new Date();
var date = today.getFullYear() + '/' + (today.getMonth() + 1) + '/' + today.getDate();
document.write(date);

今天 getFullYear ()当年的收入来源。

GetMonth () + 1 获取当前月份。

Today. getDate ()得到今天的日期。

所有这些都与“/”连接。

我的解决方案使用字符串字面值。

// Declare Date as d
var d = new Date()


// Inline formatting of Date
const exampleOne = `${d.getDay()}-${d.getMonth() + 1}-${d.getFullYear()}`
// January is 0 so +1 is required


// With Breaklines and Operators
const exampleTwo = `+++++++++++
With Break Lines and Arithmetic Operators Example
Year on newline: ${d.getFullYear()}
Year minus(-) 30 years: ${d.getFullYear() - 30}
You get the idea...
+++++++++++`


console.log('=============')
console.log(exampleOne)
console.log('=============')


console.log(exampleTwo)

为了得到日期,它内置在 JavaScript 中:

new Date();

如果你正在寻找日期格式,而且你正在使用 剑道 jQuery 用户界面库为你的网站,那么我建议使用内置的 剑道函数:

kendo.toString(new Date(), "yyMMdd"); // Or any other typical date format

对于支持的格式的完整列表,看这里

如果只需要字符串表示形式,那么只需使用:

Date();

试试这个,你可以相应地调整日期格式:

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}


var myDate = dd + '-' + mm + '-' + yyyy;

DR

如果您需要本地计算机(客户机)上的当前时间,那么这里找到的大多数答案都是正确的 只有,因为本地计算机(客户机)是一个通常不能被认为是可靠的源(它可能与其他系统不同)。

可靠消息来源包括:

  • Web 服务器的时钟(但要确保它已更新)
  • 时间 API 和 CDN

细节

Date实例调用的方法将根据计算机的本地时间返回一个值。

详情请参阅「 MDNWebdocs 」 : JavaScript Date 对象

为了方便起见,我在他们的文件里加了一条相关注释:

(...)获取日期和时间或其组件的基本方法都在本地(即主机系统)时区和偏移量内工作。

提到这一点的另一个来源是: JavaScript 日期和时间对象

需要注意的是,如果某人的时钟偏离了几个小时,或者他们在不同的时区,那么 Date 对象将创建一个不同于您自己计算机上创建的时间。

你可以使用以下可靠的资料来源:

但是,如果准确性对于您的用例来说并不重要,或者您只是需要日期与本地机器的时间相关,那么您可以安全地使用 Javascript 的 Date基本方法,如 Date.now()

实现这一点的一个简单方法(同时考虑到当前的时区,它利用了 ISO yyyyy-mm-dd 格式的优势)是:

let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"

通常,这是一个非常通用的兼容日期格式,如果需要,您可以将其转换为纯日期值:

Date.parse(d); // 1582044297000

试试看

`${Date()}`.slice(4,15)

console.log( `${Date()}`.slice(4,15) )

We use here standard JS functionalities: template literals, Date object which is cast to string, and slice. This is probably shortest solution which meet OP requirements (no time, only date)

对于任何人寻找这样的日期格式 2020年4月9日

function getDate(){
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]


var today = new Date();
var dd    = String(today.getDate()).padStart(2, '0');
var mm    = months[today.getMonth()];
var yyyy  = today.getFullYear();


today = dd + "-" + mm + "-" + yyyy;
return today;
}


getDate();
Date.prototype.toLocalFullDateStringYYYYMMDDHHMMSS = function () {
if (this != null && this != undefined) {
let str = this.getFullYear();
str += "-" + round(this.getMonth() + 1);
str += "-" + round(this.getDate());
str += "T";
str += round(this.getHours());
str += ":" + round(this.getMinutes());
str += ":" + round(this.getSeconds());
return str;
} else {
return this;
}


function round(n){
if(n < 10){
return "0" + n;
}
else return n;
}};

使用内置的 JavaScript ToLocaleDateString ()(更多选项在 MDN 文档中) :

const options = {
month: '2-digit',
day: '2-digit',
year: 'numeric',
};


console.log(new Date().toLocaleDateString('en-US', options)); // mm/dd/yyyy

我们可以得到类似的行为使用 Intl.DateTimeFormat有良好的 浏览器支持。与 toLocaleDateString()类似,我们可以用 选择传递一个对象:

const date = new Date('Dec 2, 2021') // Thu Dec 16 2021 15:49:39 GMT-0600
const options = {
day: '2-digit',
month: '2-digit',
year: 'numeric',
}
new Intl.DateTimeFormat('en-US', options).format(date) // '12/02/2021'

这么多复杂的答案。

只需使用 new Date(),如果您需要它作为一个字符串,只需使用 new Date().toISOString()

好好享受吧!

大多数其他的答案是提供日期与时间。
如果你只需要约会。

new Date().toISOString().split("T")[0]

输出

[ '2021-02-08', '06:07:44.629Z' ]

如果你想它在 /格式使用 replaceAll

new Date().toISOString().split("T")[0].replaceAll("-", "/")

如果您想要其他格式,那么最好使用 momentjs

// Try this simple way


const today = new Date();
let date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
console.log(date);

用我的方式

let dateString = new Date().toLocaleString().split(',').find(() => true);

试试 Date. js

毫秒

date.js.millisecond(); // 0.00

几秒钟

date.js.second(); // 58

几分钟

date.js.minute(); // 31

几个小时

date.js.hour(); // 6  (PM)

几天

date.js.day(); // Monday

几个星期

date.js.week(); // (Week Of the Month / WOM) => 2

月份

date.js.month(); // (Month) => November

三个月

date.js.tlmonth(); // (Month) => Dec

年份

date.js.year(); // (Year / String: "") => "2021"

季节

date.js.season(); // (Fall / Season: seasons) => "fall"

上午/下午的当前时间

date.js.time(); // (Time / Zone: "PDT/EDT etc.") => 10:04 AM

不需要库,并且考虑了时区。

因为有时候你需要在服务器上计算它,这可以是独立于服务器时区的。

const currentTimezoneOffset = 8; // UTC+8:00 time zone, change it


Date.prototype.yyyymmdd = function() {
return [
this.getFullYear(),
(this.getMonth()+1).toString().padStart(2, '0'), // getMonth() is zero-based
this.getDate().toString().padStart(2, '0')
].join('-');
};


function getTodayDateStr() {
const d = new Date();
// console.log(d);
const d2 = new Date(d.getTime() + (d.getTimezoneOffset() + currentTimezoneOffset * 60) * 60 * 1000);
// console.log(d2, d2.yyyymmdd());
return d2.yyyymmdd();
}


console.log(getTodayDateStr());

在澳大利亚,我更喜欢使用这个来获取 DD/MM/YYYY

(new Date()).toISOString().slice(0, 10).split("-").reverse().join("/")

重要提示: 不要使用: var today = new Date();

但是 var dateToday = new Date();,例如,因为 var today没有指示任何东西。

您可能希望自动检索浏览器的区域名,并将其作为 toLocaleString()的第一个参数传递,以便传递其他选项:

// Get locale name
function getLang() {
if (navigator.languages != undefined)
return navigator.languages[0];
return navigator.language;
}


// Get the current datetime with format yyyy-MM-ddThhmmss
const time = new Date().toLocaleString(getLang(), {
hour12: false ,
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: "numeric",
minute: "numeric",
second: "numeric"
}).replaceAll('/', '-').replaceAll(':', '').replaceAll(' ', 'T')


console.log("locale:", getLang())
console.log(time)

结果可能是:

locale: zh-TW
2022-09-13T171642

当您更改浏览器的区域设置时,时间和日期(如果需要)也会发生变化。