我需要将日期/时间从28/06/2018 01:30:20
更改为2018-06-28 01:30:20
。
我找到了下面的示例,尝试根据需要进行更改,但显示“无效日期”。
var now = "2018-06-28 01:30:20";
function toJSDate(dateTime) {
var dateTime = dateTime.split(" ");
var date = dateTime[0].split("-");
var time = dateTime[1].split(":");
return new Date(date[0], date[1], date[2], time[0], time[1], time[2], 0);
}
var jsDate = toJSDate(now);
var dd = jsDate.toLocaleDateString() + " " + jsDate.toLocaleTimeString();
console.log(dd);
请提出任何想法和谢谢。
答案 0 :(得分:1)
let str = "28/06/2018 01:30:20"
let date = new Date(str.replace(/(\d+)\/(\d+)\/(\d+)/g, (_, a, b, c) => c + '-' + b + '-' + a))
console.log(date);
您需要做两件事-重新排列日期字符串并将/
更改为-
。您可以使用简单的字符串替换来代替拆分,然后创建一个new Date()
答案 1 :(得分:1)
如果不需要Date对象的功能,只需重新排列各部分:
ES6
function format(dateStr) {
const dateTime = dateStr.split(" ");
const date = dateTime[0].split("-");
return `${date[0]}-${date[1]}-${date[2]} ${dateTime[1]}`;
}
console.log(format("2018-06-28 01:30:20"));
//outputs: 2018-06-28 01:30:20
答案 2 :(得分:1)
如果这是您可能的解决方案,则可以使用Moment.js
然后您可以尝试以下操作:
var now = "2018-06-28 01:30:20";
var date = moment(new Date(now)).format('YYYY-MM-DD HH:mm:ss');
现在date
以YYYY-MM-DD HH:mm:ss
的格式保存字符串。
Moment.js也是处理日期格式和操作的好框架。
注意:
您也可以这样做:
var date = moment(now).format('YYYY-MM-DD HH:mm:ss');
但这将在下一个主要版本中弃用。
答案 3 :(得分:0)
谢谢。 这对我有用。 将日期/时间从“ 28/06/2018 01:30:20”更改为类似于“ 2018-06-28 01:30:20”:
function changeFormatDate (dateTime) {
dateTime = dateTime.split(" ");
var date = dateTime[0].split("/");
var time = dateTime[1].split(":");
return date[2]+"-"+date[1]+"-"+date[0]+" "+time[0]+":"+time[1]+":"+ time[2];
}
function convertStringToDateTime(dateString){
var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
var dateArray = reggie.exec(dateString);
var dateObject = new Date(
(+dateArray[1]),
(+dateArray[2])-1, // Careful, month starts at 0!
(+dateArray[3]),
(+dateArray[4]),
(+dateArray[5]),
(+dateArray[6])
);
return dateObject;
}