2017-08-16 59 views
1

我有一个日期,我想将其转换为yyyymmdd格式的数字。 谈到作为当组件分离时,JavaScript日期返回不同的值

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 

这个日子和月份怎么过?

回答

-1

使用瞬间

Moment(dt).format('YYYYMMDD').toString() 

给出了答案找到一个简单的方法(不知道为什么上面没有工作!):20170816!

+0

你没有在你的问题,你可以使用momentjs提。还有一个问题是关于别的,据我了解它是关于为什么getDay()和getMonth()不同于日期字符串。 – DDRamone

+0

这是正确的......我试图得到一个结果,如果我无法使用我正在使用的工具获得一个,那么我将使用另一个工具。第一个问题仍然存在,第二个评论的结果已经获得。对不起,我没有解释我在第一个问题后的结果。 – SuperRoo

0

你可以这样说:

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"));

1

getMonth()

返回一个整数,0和11之间,按照本地时间表示给定日期的月份。 0对应于1月1日至2月,依此类推。


getDay()

返回对应于当周定日期的一天,一个整数,按照本地时间:0代表星期日,1代表星期一,2表示星期二,依此类推。


这意味着你的代码的这个结果是正确的

dt.getFullYear() = 2017 
dt.getMonth() = 7 
dt.getDay() = 3 

有一个名为getDate()函数将返回16为你的情况。

这些函数来自本地JavaScript日期对象。你

0

下面的代码返回结果:

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);

相关问题