Javascript转换为日期/时间格式

时间:2018-06-28 11:55:51

标签: javascript date datetime

我需要将日期/时间从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);

请提出任何想法和谢谢。

4 个答案:

答案 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');

现在dateYYYY-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;
 }