如何在JavaScript中获取当前日期?
当前回答
大多数其他答案都提供了日期和时间。如果你只需要日期。
new Date().toISOString().split("T")[0]
输出
[ '2021-02-08', '06:07:44.629Z' ]
如果要使用/format,请使用replaceAll。
new Date().toISOString().split("T")[0].replaceAll("-", "/")
如果您需要其他格式,那么最好使用momentjs。
其他回答
这个答案适用于那些想要一个类似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 GMT+0100
JSFiddle:https://jsfiddle.net/n9mszhjc/4/
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;
}};
大多数其他答案都提供了日期和时间。如果你只需要日期。
new Date().toISOString().split("T")[0]
输出
[ '2021-02-08', '06:07:44.629Z' ]
如果要使用/format,请使用replaceAll。
new Date().toISOString().split("T")[0].replaceAll("-", "/")
如果您需要其他格式,那么最好使用momentjs。
已更新!,向下滚动
如果你想让最终用户觉得简单漂亮。。。此外,在下面的第一个版本中修复了一个小后缀问题。现在正确返回后缀。
var objToday=新日期(),工作日=新阵列(‘星期一’、‘星期一”、‘星期二’、‘周三’、‘周四’、‘周五’、‘周六’),dayOfWeek=工作日[objToday.getDay()],domEnder=function(){var a=objToday;if(/1/.test(parseInt((a+“”).charAt(0))))返回“th”;a=parseInt((a+“”).charAt(1));返回1==a?“st”:2=a?“nd”:3==a?”rd“:”th“}(),dayOfMonth=今天+(objToday.getDate()<10)?'0’+objToday.getDate()+domEnder:objToday.getData()+domEnder,months=新阵列(“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”),curMonth=月[objToday.getMonth()],curYear=objToday.getFullYear(),curHour=objToday.getHours()>12?objToday.getHours()-12:(objToday.getHoures()<10?“0”+objToday.getHours():objToday.getHoures()),curMinute=objToday.getMinutes()<10?“0”+objToday.getMinutes():objToday.getMinute(),curSeconds=objToday.getSeconds()<10?“0”+objToday.getSeconds():objToday.getSecond(),curMeridiem=objToday.getHours()>12?“下午”:“上午”;var today=curHour+“:”+curMinute+“.”+curSeconds+curMeridiem+“”+dayOfWeek+“”+dayOfMonth+“of”+curMonth+“,”+curYear;document.getElementsByTagName('1')[0].textContent=today;<h1></h1>
UBBER更新经过多次拖延,我终于在GitHubbed上更新了我自己使用的最终解决方案。它甚至在最后一刻做了一些编辑,让它更甜!如果你正在寻找旧的jsFiddle,请看这个。
这个更新有两种口味,虽然没有我上面的原始答案那么小,但仍然相对较小。如果你想要极小的尺寸,那就这样吧。另请注意:这仍然没有moment.js那么臃肿。虽然moment.jss很好,imo,但它有太多世俗的方法,需要像学习一种语言一样学习片刻。我这里使用与PHP相同的常见格式:date。
快速链接
日期.format.min.js 5.08 KBdateFormat.min.js 4.16 KB
风味1新日期().format(字符串)我的个人传真。我知道这个禁忌,但在约会对象上效果很好。只需注意日期对象可能具有的任何其他mod。
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
风味2日期格式(日期,字符串)更传统的一体化方法。具有上一个的所有功能,但通过带有Date参数的方法调用。
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUS风味(需要jQuery)$.date(日期,字符串)这不仅仅包含一个简单的格式选项。它扩展了基础Date对象,并包括addDays等方法。有关更多信息,请参阅Git。
在这个mod中,格式字符的灵感来自PHP:date。有关完整列表,请参阅我的自述文件
这个mod还有一个长得多的预制格式列表。要使用预制格式,只需输入其密钥名称。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”==“Y-m-d h:i:s”“postgreSQL”==“Y.z”'postgreSQL2'=='Yz''soap'=='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”'常量'“美国”==“F j Y”“美洲海岸”==“m/d/Y”“美国时间”==“m/d/Y h:i:sA”“原子”==“Y-m-d\\TH:i:sP”“COOKIE”==“l d-M-Y H:i:s T”“欧洲”==“j F Y”“欧洲”==“d.m.Y”“欧洲时间”==“d.m.Y H:i:s”“ISO8601”==“Y-m-d\\TH:i:sO”“法律”==“j F Y”“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 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\来转义字符。
你可以用这个
<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>
推荐文章
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?
- jQuery日期/时间选择器
- 我如何预填充一个jQuery Datepicker文本框与今天的日期?
- 数组的indexOf函数和findIndex函数的区别
- jQuery添加必要的输入字段
- Access-Control-Allow-Origin不允许Origin < Origin >