javascript日期字符串轉(zhuǎn)換為時(shí)間戳的5種方法總結(jié)
前言
將JavaScript中的日期字符串轉(zhuǎn)換為時(shí)間戳也是常見的需求,以下是五種實(shí)現(xiàn)這一轉(zhuǎn)換的方法,包括使用基本的Date對象、正則表達(dá)式輔助解析、以及一些現(xiàn)代JavaScript特性:
方法1:直接使用 Date 構(gòu)造函數(shù)
這是最基本的方法,適用于大多數(shù)標(biāo)準(zhǔn)日期格式的字符串。
function dateStringToTimestamp(str) {
return new Date(str).getTime();
}
console.log(dateStringToTimestamp("2023-04-01T12:00:00Z")); // ISO 8601格式
方法2:處理非ISO標(biāo)準(zhǔn)格式
對于非ISO標(biāo)準(zhǔn)格式的日期字符串,可能需要手動(dòng)解析,這里以"年-月-日 時(shí):分:秒"為例:
function customDateStringToTimestamp(str) {
const [year, month, day, hour, minute, second] = str.split(/[- :]/);
return new Date(year, month - 1, day, hour, minute, second).getTime(); // 注意月份減1
}
console.log(customDateStringToTimestamp("2023-04-01 12:00:00"));
方法3:使用正則表達(dá)式輔助解析
對于格式固定的日期字符串,可以利用正則表達(dá)式提取各部分,適用于復(fù)雜或不規(guī)則格式。
function regexDateStringToTimestamp(str) {
const match = str.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})/);
if (match) {
return new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6]).getTime();
}
return null; // 或者拋出錯(cuò)誤處理
}
console.log(regexDateStringToTimestamp("2023-04-01T12:00:00"));
方法4:利用現(xiàn)代JavaScript特性(如Date.parse())
Date.parse()可以直接解析ISO 8601格式的字符串為時(shí)間戳,但要注意瀏覽器兼容性和解析的準(zhǔn)確性。
function dateStringToTimestampWithParse(str) {
return Date.parse(str);
}
console.log(dateStringToTimestampWithParse("2023-04-01T12:00:00Z"));
方法5:使用第三方庫(如moment.js或date-fns)
盡管推薦原生方法,但第三方庫提供了更多便利和靈活性。
使用moment.js:
// 需要先引入moment.js庫
const moment = require('moment');
function dateStringToTimestampMoment(str) {
return moment(str).valueOf();
}
console.log(dateStringToTimestampMoment("2023-04-01T12:00:00Z"));
使用date-fns:
// 需要先引入date-fns庫
import { parseISO, format } from 'date-fns';
function dateStringToTimestampDateFns(str) {
return parseISO(str).getTime();
}
console.log(dateStringToTimestampDateFns("2023-04-01T12:00:00Z"));
請注意,上述方法在處理不同地區(qū)格式或非標(biāo)準(zhǔn)格式時(shí)可能需要適當(dāng)調(diào)整,特別是涉及到月份和日期的解析。
總結(jié)
到此這篇關(guān)于javascript日期字符串轉(zhuǎn)換為時(shí)間戳的5種方法的文章就介紹到這了,更多相關(guān)js日期字符串轉(zhuǎn)換為時(shí)間戳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)網(wǎng)頁表格自動(dòng)變大縮小的方法
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁表格自動(dòng)變大縮小的方法,實(shí)例分析了javascript操作表格的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
javascript實(shí)現(xiàn)日期按月份加減
JavaScript實(shí)現(xiàn)日期加減計(jì)算功能代碼實(shí)例,因?yàn)樵趈s中沒有類似C#中的AddDays方法,所以要想實(shí)現(xiàn)日期加減的話,就需要自己寫函數(shù)來實(shí)現(xiàn)。這里分享給大家,有需要的小伙伴可以參考下2015-05-05
JavaScript通過代碼調(diào)用Flash顯示的方法
這篇文章主要介紹了JavaScript通過代碼調(diào)用Flash顯示的方法,實(shí)例分析了JavaScript通過flash插件swfobject.js調(diào)用flash顯示的具體操作技巧,需要的朋友可以參考下2016-02-02
在js(jquery)中獲得文本框焦點(diǎn)和失去焦點(diǎn)的方法
文章介紹兩個(gè)方法和種是利用javascript onFocus onBlur來判斷焦點(diǎn)和失去焦點(diǎn),加一種是利用jquery $("p").blur(); 或$("p").blur(fn)來實(shí)現(xiàn),有需要的朋友可以參考一下2012-12-12
6種JavaScript判斷對象自身為空的方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了6種JavaScript判斷對象自身為空的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
JavaScript實(shí)現(xiàn)重置表單(reset)的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)重置表單(reset)的方法,涉及javascript中reset()方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名器實(shí)例詳解
這篇文章主要介紹了JavaScript隨機(jī)點(diǎn)名器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
JavaScrip實(shí)現(xiàn)PHP print_r的數(shù)功能(三種方法)
PHP print_r的函數(shù)很好用,可以用來打印數(shù)組、對象等的結(jié)構(gòu)與數(shù)據(jù),可惜JavaScript并沒有原生提供類似的函數(shù)。不過我們可以試著自己來實(shí)現(xiàn)這個(gè)函數(shù),下面提供一些方法與思路2013-11-11
在Postman的腳本中如何使用pm對象獲取接口的請求參數(shù)
這篇文章主要介紹了在Postman的腳本中如何使用pm對象獲取接口的請求參數(shù),本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09

