將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中文網其他相關文章!