首先介紹一下我遇到的坑,找了幾個關於字符串轉時間的,他們都可以就我用的時候不行。
我的原因,我的字符串是MYSQL拿出來的不是標准的時間格式,是不會轉成功的。
解決思路:先將字符串轉為標准時間格式的字符串,在轉為時間
原文鏈接:https://www.jb51.net/article/66385.htm
//字符串轉日期格式,strDate要轉為日期格式的字符串 function getDate(strDate) { var st = strDate; var a = st.split(" "); //這個根據你的字符串決定,如果中間為T則改T var b = a[0].split("-"); var c = a[1].split(":"); var date = new Date(b[0], b[1], b[2], c[0], c[1], c[2]); return date; }
然后就是網上各種轉換方式了:
原文鏈接:https://blog.csdn.net/yangxiaovip/article/details/40429155
function formatDate(date, format) { if (!date) return; if (!format) format = "yyyy-MM-dd"; switch(typeof date) { case "string": date = new Date(date.replace(/-/, "/")); break; case "number": date = new Date(date); break; } if (!date instanceof Date) return; var dict = { "yyyy": date.getFullYear(), "M": date.getMonth() + 1, "d": date.getDate(), "H": date.getHours(), "m": date.getMinutes(), "s": date.getSeconds(), "MM": ("" + (date.getMonth() + 101)).substr(1), "dd": ("" + (date.getDate() + 100)).substr(1), "HH": ("" + (date.getHours() + 100)).substr(1), "mm": ("" + (date.getMinutes() + 100)).substr(1), "ss": ("" + (date.getSeconds() + 100)).substr(1) }; return format.replace(/(yyyy|MM?|dd?|HH?|ss?|mm?)/g, function() { return dict[arguments[0]]; }); }
最后說明一下 我發的只是兩個方法,是原文的,並無連貫性,並未做處理。
我說的重點是問題的思路和原因。
個人筆記,轉載指定鏈接