JavaScript Date 在组件分离时返回不同的值



我有一个日期,我想将其转换为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!!

最新更新