javascript - 在javascript中将日期从 'Thu Jun 09 2011 00:00:00 GMT+0530 (India Standard Time)'转换为 'YYYY-MM-DD'

标签 javascript

如何将时间格式“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/

相关文章:

javascript - Angular 指令 - 如何使用 JQuery 将 ngModel 和 ng Bind 添加到自定义指令元素?

javascript - SVG -> getBBox 失败,但只有一半的时间失败

asp.net - 在我的 Web 应用程序项目中添加帮助文件的最佳方法应该是什么?

javascript - axios post params没有被发送

javascript - jQuery 对类的一个元素的值进行动画处理

javascript - 在 Rails 4 JS/ERB 模板中嵌入 JSON

javascript - 在 Chrome PDF 查看器上隐藏/禁用下载按钮

javascript - 通过 javascript 在 Blazor 中更改输入值不会更改它的绑定(bind)属性值

javascript - 在按钮上添加行按 React

javascript - JavaScript 中的作用域规则