首页 >web前端 >js教程 >如何可靠地将 dd-mm-yyyy 字符串转换为 JavaScript 日期对象?

如何可靠地将 dd-mm-yyyy 字符串转换为 JavaScript 日期对象?

Barbara Streisand
Barbara Streisand原创
2024-11-19 13:16:02437浏览

How to Reliably Convert dd-mm-yyyy Strings to JavaScript Date Objects?

将 dd-mm-yyyy 字符串转换为日期

在 JavaScript 中,将 dd-mm-yyyy 格式的字符串转换为日期对象很简单,但必须考虑某些因素。

直接转换的问题

当将 new Date(string) 与 dd-mm-yyyy 字符串一起使用时,您可以遇到“无效日期”错误。这是因为“-”符号不被识别为日期分隔符。

解决方案

1.按“-”拆分:

将字符串拆分为其组成部分并手动构造日期对象:

var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])

2.使用正则表达式:

使用正则表达式提取日期组件:

var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "//"))

3.创建可重用函数:

为了方便起见,将转换逻辑包装在可重用函数中:

function toDate(dateStr) {
  var parts = dateStr.split("-")
  return new Date(parts[2], parts[1] - 1, parts[0])
}

4.现代 JavaScript:

如果您可以使用现代 JavaScript 功能,请利用数组解构:

const toDate = (dateStr) => {
  const [day, month, year] = dateStr.split("-")
  return new Date(year, month - 1, day)
}

以上是如何可靠地将 dd-mm-yyyy 字符串转换为 JavaScript 日期对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn