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

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

DDD
DDD原创
2024-11-19 22:43:02798浏览

How Can I Convert a dd-mm-yyyy String to a JavaScript Date Object?

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

无法使用以下命令将 dd-mm-yyyy 字符串解析为有效的日期对象JavaScript 的 Date 构造函数主要是由于构造函数无法识别“-”符号的存在。为了克服这个问题,需要替代方法。

解决方案:按“-”拆分

一种解决方案是使用“-”将字符串拆分为各个组件符号作为分隔符,然后使用日、月、年值创建一个新的 Date 对象:

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

解决方案:使用 Regex

正则表达式也可以用于提取各个日期组件并构造有效的日期字符串:

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

建议:按“-”拆分

虽然两种方法都有效,但对于此特定任务,“split on -”方法可以说更加具体和高效,因为它直接针对输入字符串的已知格式,而不依赖于可能更复杂的正则表达式匹配。

可重用性

如果代码中多次执行此转换,建议将其封装在函数中,以实现可重用性和可维护性:

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

使用函数:

var f = toDate($("#datepicker").val())
var t = toDate($("#datepickertwo").val())

现代 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