我是使用一个表单,用户可以从日期时间选择器中选择dd-mm-yyyy hh:mm:ss
格式的日期和时间。现在我想将其转换为yyyy-mm-dd hh:mm:ss
格式以存储在MySQL表中。
我尝试了moment.js的用法如下:
console.log(moment(status.date).format('MM/DD/YYYY'));
我需要从一个表单中获取用户从日期时间选择器中选择的日期和时间,然后将其用作status.date字段的值。
请帮忙。
我是使用一个表单,用户可以从日期时间选择器中选择dd-mm-yyyy hh:mm:ss
格式的日期和时间。现在我想将其转换为yyyy-mm-dd hh:mm:ss
格式以存储在MySQL表中。
我尝试了moment.js的用法如下:
console.log(moment(status.date).format('MM/DD/YYYY'));
我需要从一个表单中获取用户从日期时间选择器中选择的日期和时间,然后将其用作status.date字段的值。
请帮忙。
首先将其转换为ISOString,然后使用replace
方法消除不需要的部分。
var date = new Date();
date.toISOString().replace(/T/, " ").replace(/\..+/,'')
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);
}
在Prateek Jain的ISOString方法的基础上,我们可以使用toLocaleString
来获取本地时间的ISO格式。
根据不同的地区,需要根据toLocaleString
提供的基本格式进行调整。最接近ISO的格式是en-CA
(请参阅此答案以获取所有基于地区的格式)。然后,我们使用选项{hour12: false}
将其转换为24小时制。
const d = new Date();
d.toLocaleString('en-CA', {hour12: false}).replace(/, /, ' ');
Date
对象给node-mysql
即可。 - Amadans.replace(/(^\d\d)(-\d\d-)(\d{4})(.+$)/,'$3$2$1$4')
。 - RobG