如何将时间格式“Thu Jun 09 2011 00:00:00 GMT+0530(印度标准时间)”转换为 YYYY-MM-DD。
当我尝试 alert() 日期时,它将显示如下日期 - 2011 年 6 月 9 日星期四 00:00:00 GMT+0530(印度标准时间)
但我需要 YYYY-MM-DD 格式的时间。
是否有任何内置函数可以转换?
最佳答案
您可以使用 Date
构造函数解析日期,然后吐出各个时间组件:
function convert(str) {
var date = new Date(str),
mnth = ("0" + (date.getMonth() + 1)).slice(-2),
day = ("0" + date.getDate()).slice(-2);
return [date.getFullYear(), mnth, day].join("-");
}
console.log(convert("Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"))
//-> "2011-06-08"
正如您从结果中看到的那样,这会将日期解析为本地时区。如果你想保留基于原始时区的日期,最简单的方法是拆分字符串并提取你需要的部分:
function convert(str) {
var mnths = {
Jan: "01",
Feb: "02",
Mar: "03",
Apr: "04",
May: "05",
Jun: "06",
Jul: "07",
Aug: "08",
Sep: "09",
Oct: "10",
Nov: "11",
Dec: "12"
},
date = str.split(" ");
return [date[3], mnths[date[1]], date[2]].join("-");
}
console.log(convert("Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)"))
//-> "2011-06-09"
关于javascript - 在javascript中将日期从 'Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)'转换为 'YYYY-MM-DD',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291225/