如何将dd/mm/yyyy字符串转换为JavaScript Date对象?

Raj*_*kam 29 javascript date

如何将格式的日期转换23/10/2015为JavaScript日期格式:

Fri Oct 23 2015 15:24:53 GMT+0530 (India Standard Time)
Run Code Online (Sandbox Code Playgroud)

Yel*_*yev 78

MM/DD/YYYY格式

如果您具有JavaScript的默认MM/DD/YYYY格式,则只需将字符串传递给构造函数即可.它会为你解析它. Date(string)

var dateString = "10/23/2015"; // Oct 23

var dateObject = new Date(dateString);

document.body.innerHTML = dateObject.toString();
Run Code Online (Sandbox Code Playgroud)

DD/MM/YYYY格式

如果您使用此格式,则可以分割日期以分别获取日,月和年,然后在另一个构造函数中使用它 - Date(year, month, day):

var dateString = "23/10/2015"; // Oct 23

var dateParts = dateString.split("/");

// month is 0-based, that's why we need dataParts[1] - 1
var dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]); 

document.body.innerHTML = dateObject.toString();
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,您可以阅读有关文章DateMozilla开发者网络.

  • 全世界只有 *一个* 国家/地区使用 MM/DD/YYYY,他们将什么设置为默认 JavaScript 格式?很烦人。 (8认同)
  • 您应该将正确的类型(数字)传递给构造函数。var dateObject: Date = new Date(+dateParts[2], +dateParts[1] - 1, +dateParts[0]); (2认同)

Mik*_*ill 13

这是我之前准备好的...

  convertToDate(dateString) {
      //  Convert a "dd/MM/yyyy" string into a Date object
      let d = dateString.split("/");
      let dat = new Date(d[2] + '/' + d[1] + '/' + d[0]);
      return dat;     
  }
Run Code Online (Sandbox Code Playgroud)


Rob*_*obG 6

解析一个字符串以创建另一个字符串,然后由内置的\xe2\x80\x93in 解析器进行解析并不是一种有效的策略,特别是当两个字符串都不采用 ECMA-262 支持的格式时。

\n

更有效的策略是解析字符串一次并将各个部分直接交给构造函数,避免第二次解析,例如

\n

\r\n
\r\n
const parseDMY = s => {\n  let [d, m, y] = s.split(/\\D/);\n  return new Date(y, m-1, d);\n};\n\nconsole.log(parseDMY(\'23/10/2015\').toString());
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

Date.parse仅支持以下格式生成的格式:

\n
    \n
  1. Date.protoype.toString
  2. \n
  3. Date.protoype.toISOString
  4. \n
  5. Date.protoype.toUTCString
  6. \n
\n

任何其他格式(包括 m/d/y)的解析取决于实现。

\n