node js中的日期格式转换

Date format conversion in node js

我正在使用一个表单,用户可以从该表单中 select 来自日期时间选择器的 dd-mm-yyyy hh:mm:ss 格式的日期时间。现在我想将格式转换为 yyyy-mm-dd hh:mm:ss 格式存储在 mysql table.

我试过这样的 moment js

console.log(moment(status.date).format('MM/DD/YYYY'));

其中 status.date 我将 post 来自用户 selects datetime 来自 datetimepicker 的表单。

请帮忙

先转成ISOString,再用replace方法去掉不需要的东西

var date = new Date();
date.toISOString().replace(/T/, " ").replace(/\..+/,'')

source: chbrown's answer

你可以这样做而不是有一些模块。

var fd = status.date;
var fromDate = fd.split(" ");
console.log(formatDate(fromDate[0],fromDate[1] + " " + fromDate[2]));// 

并在那里添加这些函数。

function formatDate(date, time2) {
    var from = date.split("-");
    var f = from[2] + "-" + from[1] + "-" + from[0];
    var time1 = time(time2);

    return f + " " + time1;
}

function time(time) {
    var hours = Number(time.match(/^(\d+)/)[1]);
    var minutes = Number(time.match(/:(\d+)/)[1]);
    var AMPM = time.match(/\s(.*)$/)[1];
    if ((AMPM == "PM" || AMPM == "pm") && hours < 12)
        hours = hours + 12;
    if ((AMPM == "AM" || AMPM == "am") && hours == 12)
        hours = hours - 12;
    var sHours = hours.toString();
     if (hours < 10)
        sHours = "0" + sHours;
    if (minutes < 10)
        sMinutes = "0" + sMinutes;
   return (sHours + ":" + sMinutes);

}

建立在之上,我们可以使用toLocaleString获取ISO格式的当地时间

需要根据不同地区货比三家toLocaleString提供的基本格式。最接近 ISO 的格式是 en-CA(所有基于区域的格式请参考 )。然后我们使用选项 {hour12: false} 转换为 24 小时制。

const d = new Date();
d.toLocaleString('en-CA', {hour12: false}).replace(/, /, ' ');