我有一个日期,我想将其转换为yyyymmdd格式的数字。 它以
2017-08-16T05:47:42.070Z
我把它转换成
let dt = new Date(dte)
以 dt 为单位创建日期:
Wed Aug 16 2017 15:47:42 GMT+1000 (E. Australia Standard Time)
现在,当我查看这些部分时,我得到以下内容:
dt.getFullYear() = 2017
dt.getMonth() = 7
dt.getDay() = 3
为什么日和月都休息了?
getMonth()
返回一个介于 0 和 11 之间的整数,表示根据本地时间在给定日期中的月份。 0 对应于 1 月,1 对应于 2 月,依此类推。
getDay()
根据本地时间返回一个整数,对应于给定日期的星期几:0 表示星期日,1 表示星期一,2 表示星期二,依此类推。
这意味着您的代码结果是正确的
dt.getFullYear() = 2017
dt.getMonth() = 7
dt.getDay() = 3
有一个名为getDate()
的函数将为您的案例返回16
。
这些函数来自本机 javascript Date Object。
你可以这样做:
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
console.log(formatDate("2017-08-16T05:47:42.070Z"));
以下代码返回结果:
var dte = '2017-08-16T05:47:42.070Z';
var dt = new Date(dte);
var myFrmt = dt.getFullYear().toString() + (dt.getMonth()+1).toString() + dt.getDate().toString();
alert(myFrmt);
找到一个简单的方法(不知道为什么上面不起作用!!
Moment(dt).format('YYYYMMDD').toString()
给出答案:20170816!!