如何在JavaScript中获取当前日期?
当前回答
试用Date.js
毫秒
date.js.millisecond(); // 0.00
秒
date.js.second(); // 58
分钟
date.js.minute(); // 31
小时
date.js.hour(); // 6 (PM)
Days
date.js.day(); // Monday
周
date.js.week(); // (Week Of the Month / WOM) => 2
月
date.js.month(); // (Month) => November
TLM(三字母月)
date.js.tlmonth(); // (Month) => Dec
Year
date.js.year(); // (Year / String: "") => "2021"
季
date.js.season(); // (Fall / Season: seasons) => "fall"
当前时间(AM/PM)
date.js.time(); // (Time / Zone: "PDT/EDT etc.") => 10:04 AM
其他回答
重要提示:不要使用:var today=new Date();
但是var dateToday=new Date();,例如,var今天没有表示任何内容。
如果您只想要一个没有时间信息的日期,请使用:
var today=新日期();today.setHours(0,0,0);document.write(今天);
使用new Date()生成包含当前日期和时间的新Date对象。
var today=新日期();var dd=字符串(today.getDate()).padStart(2,'0');var mm=字符串(today.getMonth()+1).padStart(2,'0')//一月是0!var yyyy=today.getFullYear();今天=mm+'/'+dd+'/'+yyyy;document.write(今天);
这将以mm/dd/yyyy的格式显示今天的日期。
只需更改今天=mm+'/'+dd+'/'+yyyy;按照您希望的格式。
你可以使用我下面给出的DATE 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;
} ());
最新编辑:2019年8月23日date fns库的工作方式与moment.js非常相似,但占用空间要小得多。它可以让您快速选择要包含在项目中的函数,这样您就不必编译整个库来格式化今天的日期。如果您的项目不能选择最小的第三方库,我支持塞缪尔·梅多斯(Samuel Meddows)的公认解决方案。
保存下面的历史,因为它帮助了一些人。但从记录上看,它相当粗糙,很容易在没有警告的情况下被打破,这篇文章中的大多数解决方案也是如此
编辑2017年7月2日单行JS解决方案:
tl;博士var todaysDate=新日期(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i)?new Date(Date.now()).toLocaleString().split(“”)[0].splite(',')[0]:新日期(Date.nnow()).ToLocaleSstring().spit(“')[1]+“”+新日期(Date.now(”).toLocal eString).splite“”)[2]+“”+new日期(Date:now().toLocaleString;edge,ff最新,&chrome返回todaysDate=“2/7/2017”“works”*在IE10中+
解释
我发现IE10和IE Edge的做法有点不同。。想想看吧以new Date(Date.now()).toLocaleString()作为输入,
IE10返回:
"Tuesday, February 07, 2017 2:58:25 PM"
我可以写一个大的长函数和FTFY。但你真的应该用moment.js来做这些。我的脚本只是清理了这一点,并为您提供了扩展的传统美国符号:>todaysDate=“2017年3月6日”
IE EDGE返回:
"2/7/2017 2:59:27 PM"
当然,这不可能那么容易。Edge的日期字符串在每个可见字符串之间都有不可见的“•”字符。因此,我们现在不仅要检查第一个字符是否是数字,还要检查前3个字符,因为事实证明,整个日期范围内的任何一个字符最终都会在某个点上是点或斜线。所以为了保持简单,只需.slice()开头的三个字符(针对未来恶作剧的小缓冲区),然后检查数字。应该注意的是,这些不可见的点可能会在代码中持续存在。如果你有更大的计划,而不仅仅是将这个字符串打印到你的视图中,我可能会深入研究。
⑪更新了一个衬垫:
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]会给你一天的时间。
推荐文章
- 如何使用Jest测试对象键和值是否相等?
- 将长模板文字行换行为多行,而无需在字符串中创建新行
- 如何在JavaScript中映射/减少/过滤一个集?
- Bower: ENOGIT Git未安装或不在PATH中
- 添加javascript选项选择
- 在Node.js中克隆对象
- 为什么在JavaScript的Date构造函数中month参数的范围从0到11 ?
- 使用JavaScript更改URL参数并指定默认值
- 在window.setTimeout()发生之前取消/终止
- 如何删除未定义和空值从一个对象使用lodash?
- 检测当用户滚动到底部的div与jQuery
- 在JavaScript中检查字符串包含另一个子字符串的最快方法?
- 检测视口方向,如果方向是纵向显示警告消息通知用户的指示
- ASP。NET MVC 3 Razor:在head标签中包含JavaScript文件
- 禁用从HTML页面中拖动图像