我从数据库中提取数据并输出JSON。一旦这些项目拉出以这种格式2018-06-25
我尝试过:
var date = new Date(element.rundate).toString().substring(0,15);
但是输出减去这样的日期Sun Jun 24 2018
有人知道如何纠正吗?
答案 0 :(得分:1)
您可以使用moment.js或
const date = new Date(element.rundate)
result = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate();
答案 1 :(得分:0)
问题在于,当日期格式为yyyy-mm-dd
时,JavaScript会将parse设为ISO 8601 date,因此将假定其为UTC 00:00
。
但是,如果日期格式为yyyy/mm/dd
或mm-dd-yyyy
,它将根据RFC 2822
使用本地时间:
日期和时间应该表示当地时间。
因此,用斜杠-
代替破折号/
可以解决问题。另外,您也可以拆分日期的不同部分,并以mm-dd-yyyy
格式创建新的日期字符串表示形式,但我认为以前的方法更加简洁明了:
// Original date:
const dashes = '2018-06-25';
// With slashes instead of dashes:
const slashes = dashes.replace(/-/g, '\/');
// mm-dd-yyyyinstead of dd-mm-yyyy:
const [ year, month, day ] = dashes.split('-');
const monthDayYear = `${ month }-${ day }-${ year }`;
// Output:
console.log(`${ dashes } => ${ new Date(dashes) }`);
console.log(`${ dashes } => ${ slashes } => ${ new Date(slashes) }`);
console.log(`${ dashes } => ${ monthDayYear } => ${ new Date(monthDayYear) }`);