基本上,我正在尝试将日期(例如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?
答案 0 :(得分:3)
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);