将 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中文网其他相关文章!