① 【js】JavaScript字元串轉換成date時間類型
JavaScript中,處理字元串轉換為Date對象有多種方式,但需要注意兼容性和效率。首先,不建議直接使用Date()構造函數和Date.parse(),因為它們在不同瀏覽器上的行為可能不一致。推薦使用ISO8601標准格式,如"yyyy/MM/dd hh:mm:ss",或者使用new Date(year, month-1, seconds)方式創建。
DayJS是一個輕量級的日期處理庫,它提供了一種便捷的API,如dayjs#toDate能從DayJS對象中獲取原生Date對象,且轉換過程通常穩定。盡管在類型比較上可能與原生Date對象不一致,但在大多數場景下,DayJS足以滿足需求,例如計算日期間隔。
對於模塊化和效率追求者,date-fns是一個好選擇。它的parse()函數允許用戶指定字元串格式,降低了轉換錯誤的風險。只需導入所需的函數,避免了不必要的包膨脹。
總的來說,DayJS憑借其API與經典庫MomentJS相似、管理更佳且體積更小,是更推薦的選擇。然而,如果你喜歡模塊化,date-fns的按需導入和定製化功能可能會更適合你。在選擇時,可以參考以下資源:
② js 轉換時間
js字元串轉化時間戳可以使用自帶函數 Date(要轉化的時間字元串)先轉化為Date類型,之後再將Date類型轉化為時間戳類型,其中時間字元串有要求,形式必須是 yyyy-MM-dd HH:mm:ss 的形式,當然,也可以只是 yyyy-MM-dd, 就是 2013-08-30,如下:
此處會得到一個 Date 類型的數據,獲得時間戳數據,需要對日期對象進行操作,將日期轉化為時間戳有三種方式,如下:
1. var time1 = date.getTime();
2.var time2 = date.valueOf();
3.var time3 = Date.parse(date);
第一、第二種:會精確到毫秒,第三種:只能精確到秒,毫秒用000替代,注意:獲取到的時間戳除以1000就可獲得Unix時間戳,就可傳值給後台得到。
(2)js數字轉時間擴展閱讀
Date() 返回當日的日期和時間。
getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)。
getMonth() 從 Date 對象返回月份 (0 ~ 11)。
getFullYear() 從 Date 對象以四位數字返回年份。
getYear() 請使用 getFullYear() 方法代替。
getHours() 返回 Date 對象的小時 (0 ~ 23)。
getMinutes() 返回 Date 對象的分鍾 (0 ~ 59)。
getSeconds() 返回 Date 對象的秒數 (0 ~ 59)。
getMilliseconds() 返回 Date 對象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒數。
getTimezoneOffset() 返回本地時間與格林威治標准時間 (GMT) 的分鍾差。
getUTCDate() 根據世界時從 Date 對象返回月中的一天 (1 ~ 31)。
getUTCDay() 根據世界時從 Date 對象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根據世界時從 Date 對象返回月份 (0 ~ 11)。
getUTCFullYear() 根據世界時從 Date 對象返回四位數的年份。
getUTCHours() 根據世界時返回 Date 對象的小時 (0 ~ 23)。
getUTCMinutes() 根據世界時返回 Date 對象的分鍾 (0 ~ 59)。
getUTCSeconds() 根據世界時返回 Date 對象的秒鍾 (0 ~ 59)。
getUTCMilliseconds() 根據世界時返回 Date 對象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字元串)的毫秒數。
setDate() 設置 Date 對象中月的某一天 (1 ~ 31)。
setMonth() 設置 Date 對象中月份 (0 ~ 11)。
setFullYear() 設置 Date 對象中的年份(四位數字)。
setYear() 請使用 setFullYear() 方法代替。
setHours() 設置 Date 對象中的小時 (0 ~ 23)。
setMinutes() 設置 Date 對象中的分鍾 (0 ~ 59)。
setSeconds() 設置 Date 對象中的秒鍾 (0 ~ 59)。
setMilliseconds() 設置 Date 對象中的毫秒 (0 ~ 999)。
setTime() 以毫秒設置 Date 對象。
setUTCDate() 根據世界時設置 Date 對象中月份的一天 (1 ~ 31)。
setUTCMonth() 根據世界時設置 Date 對象中的月份 (0 ~ 11)。
setUTCFullYear() 根據世界時設置 Date 對象中的年份(四位數字)。
setUTCHours() 根據世界時設置 Date 對象中的小時 (0 ~ 23)。
setUTCMinutes() 根據世界時設置 Date 對象中的分鍾 (0 ~ 59)。
setUTCSeconds() 根據世界時設置 Date 對象中的秒鍾 (0 ~ 59)。
setUTCMilliseconds() 根據世界時設置 Date 對象中的毫秒 (0 ~ 999)。
toSource() 返回該對象的源代碼。
toString() 把 Date 對象轉換為字元串。
toTimeString() 把 Date 對象的時間部分轉換為字元串。
toDateString() 把 Date 對象的日期部分轉換為字元串。
toGMTString() 請使用 toUTCString() 方法代替。
toUTCString() 根據世界時,把 Date 對象轉換為字元串。
toLocaleString() 根據本地時間格式,把 Date 對象轉換為字元串。
toLocaleTimeString() 根據本地時間格式,把 Date 對象的時間部分轉換為字元串。toLocaleDateString() 根據本地時間格式,把 Date 對象的日期部分轉換為字元串。
UTC() 根據世界時返回 1997 年 1 月 1 日 到指定日期的毫秒數。valueOf() 返回 Date 對象的原始值。
③ js 如何把字元串轉化為日期
varstr="2010-08-01";
//轉換日期格式
str=str.replace(/-/g,'/');//"2010/08/01";
//創建日期對象
vardate=newDate(str);
//加一天
date.setDate(date.getDate()+1);
反之,日期格式化為字元串
//完整的格式化 var time2 = new Date().format("yyyy-MM-dd hh:mm:ss");
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
//處理年份
var reYear = /(y+)/;
var resultYear = reYear.exec(fmt);
if (resultYear)
{
var yearformatPart = resultYear[0];//匹配到的格式化字元
var yearVal = (this.getFullYear() + "").substr(4 - yearformatPart.length);
fmt = fmt.replace(yearformatPart, yearVal);
}
for (var k in o) {
var re = new RegExp("(" + k + ")");
var re = re.exec(fmt);
if (re) {
var Val = "" + o[k];//本次需要替換的數據
var formatPart = re[0];//匹配到的格式化字元
var replaceVal = (formatPart.length == 1) ? (Val) : (("00" + Val).substr(Val.length));
fmt = fmt.replace(formatPart, replaceVal);
}
}
return fmt;
}
④ js如何將數字串轉為日期
function convert24(val){
if(val<10){
val = "0" + val;
}
return val;
}
var miTime = 1587571200000;
var dd = new Date(miTime );
var dateStr12 = dd.getFullYear() + "-" + dd.getMonth() + "-" + dd.getDate() + " " + dd.getHours() + ":" + dd.getMinutes() + ":" + dd.getSeconds();//12小時制格式顯回示答
var dateStr24 = dd.getFullYear() + "-" + convert24(dd.getMonth()) + "-" + convert24(dd.getDate()) + " " + convert24(dd.getHours()) + ":" + convert24(dd.getMinutes()) + ":" + convert24(dd.getSeconds());//24小時制格式顯示