在javascript中将日期从'2011年6月9日00:00:00 GMT + 0530(印度标准时间)'转换为'YYYY-MM-DD'

Gna*_*dra 11 javascript

如何将时间从格式"Thu Jun 09 2011 00:00:00 GMT + 0530(印度标准时间)"转换为YYYY-MM-DD.

当我尝试提醒()日期时,这将显示如下日期 - 星期四09 09:00 00:00:00 GMT + 0530(印度标准时间)

但我需要YYYY-MM-DD格式的时间.

有转换的内置函数吗?

And*_*y E 24

您可以使用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"
Run Code Online (Sandbox Code Playgroud)

从结果中可以看出,这会将日期解析为本地时区.如果要根据原始时区保留日期,最简单的方法是拆分字符串并提取所需的部分:

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"
Run Code Online (Sandbox Code Playgroud)

  • 嘿谢谢,但我得到"TypeError:str.split不是一个函数"控制台中的这个错误,它在我的情况下不起作用 (4认同)

小智 17

我转换日期的最简单方法是将其字符串化然后对其进行切片。

var event = new Date("Fri Apr 05 2019 16:59:00 GMT-0700 (Pacific Daylight Time)");

let date = JSON.stringify(event)
date = date.slice(1,11)

// console.log(date) = '2019-04-05'
Run Code Online (Sandbox Code Playgroud)