Javascript设置日期格式,包括带有日期和月份的0

时间:2019-02-15 21:17:48

标签: javascript

基本上,我正在尝试将日期(例如2019-02-09)转换为09-02-2019。我有以下内容:

var newDate = new Date('2019-02-09');
strDate = newDate.getDate() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getFullYear();

有效,但将输出9-2-2019。是否有一种整洁的方法(即不检查getDate和getMonth小于10)来获取输出09-02-2019?

3 个答案:

答案 0 :(得分:3)

使用toLocaleDateString()

var dt = new Date('2019-02-09');

var x = dt.toLocaleDateString('en-US', { year: 'numeric', month: '2-digit', day: '2-digit' })
          .replace(/[^0-9]/g, '-');



console.log(x);

答案 1 :(得分:1)

只需使用toLocaleDateString()方法并选择en-GB作为区域设置即可以 DD / MM / YYYY 格式返回日期,并使用简单的split()join()或正则表达式将/替换为-,如下所示:


拆分和合并方法:

var newDate = new Date('2019-02-09');    
strDate = newDate.toLocaleDateString('en-GB').split("/").join("-");    
alert(strDate);


正则表达式:

var newDate = new Date('2019-02-09');    
strDate = newDate.toLocaleDateString('en-GB').replace(/[^0-9]/g, '-');    
alert(strDate);

答案 2 :(得分:0)

您可以使用padStart来实现自己的目标。

var newDate = new Date('2019-02-09');
strDate = newDate.getDate().toString().padStart(2, "0") + "-" + (newDate.getMonth() + 1).toString().padStart(2, "0") + "-" + newDate.getFullYear();

console.log(strDate);