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