【问题标题】:Date format conversion in node js节点js中的日期格式转换
【发布时间】:2015-11-19 23:07:23
【问题描述】:

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

我尝试过这样的时刻 js

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

status.date 我将在用户从 datetimepicker 中选择日期时间的表单中发布。

请帮忙

【问题讨论】:

  • 为什么要转换成字符串?只需在准备好的语句中给node-mysql 一个Date 对象。
  • @amadan,后端已经内置在 php codeigniter 中,现在我们正在等待 nodejs 中的 api。所以我们要转换成标准的mysql格式。
  • @SwarajGiri 那里我们可以更改格式,但我从表格中给出日期,所以我应该能够更改帖子值的格式。
  • 如果您输入一个字符串并想要输出一个字符串,您可以通过重新排列部分来删除任何外部库要求:s.replace(/(^\d\d)(-\d\d-)(\d{4})(.+$)/,'$3$2$1$4')

标签: javascript mysql node.js datetime momentjs


【解决方案1】:

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

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

source: chbrown's answer

【讨论】:

  • 不确定是否适合。它以 UTC 格式返回时间。 OP 似乎想要本地的,尽管没有明确说明。我似乎记得并非所有实现都返回小数秒,但不确定(并且可能不是 node.js 的问题)。
【解决方案2】:

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

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);

}

【讨论】:

  • 但是,有没有内置的方法可以代替我们自己编写代码??
【解决方案3】:

Prateek Jain's ISOString method的基础上,我们可以使用toLocaleString获取ISO格式的当地时间

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2016-05-20
    • 2020-11-24
    相关资源
    最近更新 更多