摘要:寫在前面前兩天寫了一篇常見的獲取時間戳,今天來一篇續(xù)集吧,日期和時間戳的互轉(zhuǎn)預(yù)備知識知道什么是時間戳即距離年月日時分秒的毫秒數(shù)如果你要用到的是秒,那也行,單位問題而已。同樣的道理要會把時間戳轉(zhuǎn)化成我們想要的日期格式。
寫在前面
前兩天寫了一篇《常見的Javascript獲取時間戳》,今天來一篇續(xù)集吧,日期和時間戳的互轉(zhuǎn)
預(yù)備知識知道什么是時間戳:即距離1970年01月01日00時00分00秒的毫秒數(shù)(如果你要用到的是秒,那也行,單位問題而已)。
知道為什么需要把日期轉(zhuǎn)化成時間戳:對于前端來說,接觸的到的時間多是2018-08-08這種形式的,但是在拉取后端數(shù)據(jù)時,一般要把時間轉(zhuǎn)化成時間戳再傳過去。同樣的道理要會把時間戳轉(zhuǎn)化成我們想要的日期格式。
時間 -> 時間戳 (2018/08/09 10:10:10 -> 1533780610000 )通常我們用到的時間格式分兩種2018/08/09 10:10:10或者2018-08-09 10:10:10,幸運的是js的Date對象很好的支持了這種格式的時間,通常我們可以通過
new Date("2018/08/09 10:10:10").getTime()或者 new Date("2018-08-09 10:10:10").getTime()來獲取到時間戳
但是!?。?!
ie對于第二種不支持
如下圖:
因此,請采用以下的代碼
let time = "2018-08-09 10:10:10" time = time.replace(/-/g, "/") // 把所有-轉(zhuǎn)化成/ let timestamp = new Date(time).getTime()時間戳 -> 時間 (1533780610000 -> 2018/08/09 10:10:10)
這里要用到Date對象的一系列g(shù)et方法,思路是先根據(jù)時間戳new一個Date對象,然后通過一系列g(shù)et方法分別拿到年月日時分秒,再拼接字符串。
function timestampToTime (timestamp) { const dateObj = new Date(+timestamp) // ps, 必須是數(shù)字類型,不能是字符串, +運算符把字符串轉(zhuǎn)化為數(shù)字,更兼容 const year = dateObj.getFullYear() // 獲取年, const month = dateObj.getMonth() + 1 // 獲取月,必須要加1,因為月份是從0開始計算的 const date = dateObj.getDate() // 獲取日,記得區(qū)分getDay()方法是獲取星期幾的。 const hours = pad(dateObj.getHours()) // 獲取時, pad函數(shù)用來補0 const minutes = pad(dateObj.getMinutes()) // 獲取分 const seconds = pad(dateObj.getSeconds()) // 獲取秒 return year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds } function pad(str) { return +str >= 10 ? str : "0" + str } timestampToTime(1533773345000) timestampToTime(1533780610000)總結(jié)
有幾個小點需要注意
為了兼容,將橫線換成斜杠(2018-08-09 10:10:10 => 2018/08/09 10:10:10)
獲取月份時,要加1
getDate獲取日期,getDay是用來獲取是一個星期的第幾天
根據(jù)需求做適當?shù)难a0,2018-8-9 08:09:05 要比 2018-8-9 8:9:5好看的多。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110161.html
摘要:時間與日期處理從屬于筆者的現(xiàn)代開發(fā)系列文章,涉及到的引用資料聲明在學(xué)習(xí)與實踐資料索引中。可以通過靜態(tài)構(gòu)造方法很容易的創(chuàng)建,定義了與之間的轉(zhuǎn)化關(guān)系時差類以年月日來表示日期差,而以秒與毫秒來表示時間差適用于處理與機器時間。 Java 時間與日期處理 從屬于筆者的現(xiàn)代 Java 開發(fā)系列文章,涉及到的引用資料聲明在 Java 學(xué)習(xí)與實踐資料索引中。 Java 時間與日期處理 在 Java 8...
摘要:格式化日期時間格式化日期時間場景將當前日期時間或者特定日期時間格式化輸出為特定格式的字符串常用于人性化展示信息說明返回給定時間戳格式化后所產(chǎn)生的日期時間字符串如果沒有給出時間戳則默認使用本地當前時間備注格式說明返回值示例位數(shù)字完整表示的年份 showImg(https://segmentfault.com/img/remote/1460000019351405); 格式化日期時間 d...
摘要:傳入的格式要求詳見日期格式打印結(jié)果作為構(gòu)造函數(shù)作為構(gòu)造函數(shù)可以通過指針實例化一個的實例對象,這個對象是一個日期對象。所有實例的屬性和方法即是繼承于構(gòu)造函數(shù)原型上的屬性和方法。 前言 之前寫博客都是在github的搭建的個人博客上,最近開始遷移博客上的內(nèi)容到segmentfalut。一方面是想重新整理下寫過的博客。另一方面也是想與大家多多交流,找到現(xiàn)階段自己的不足。第一篇文章是關(guān)于Dat...
摘要:前言前面一篇文章寫了如何安全的使用里面介紹了如何處理日期時間,以及如何保證線程安全,及其介紹了在中的處理時間日期默認就線程安全的類。引入了全新的日期時間格式工具,線程安全而且使用方便。 前言 前面一篇文章寫了《SimpleDateFormat 如何安全的使用?》, 里面介紹了 SimpleDateFormat 如何處理日期/時間,以及如何保證線程安全,及其介紹了在 Java 8 中的處...
摘要:正確的解釋是允許在相等比較中進行強制類型轉(zhuǎn)換,而不允許。參考資料小議下字符串比較大小中的強制類型轉(zhuǎn)換核心概念類型轉(zhuǎn)換對象和方法隱式類型轉(zhuǎn)換小結(jié) 開胃菜 先說一個題外話,我在工作中遇到一個問題,需要比較 08:00 和 09:00 的大小,最后我找到三種方法: 在兩個字符串前后各拼接相同的年月日和秒,拼成完整的時間格式進行比較: var head = 2016-01-01 var fo...
閱讀 2603·2021-11-18 10:02
閱讀 2636·2021-11-15 11:38
閱讀 3711·2021-11-12 10:36
閱讀 706·2021-11-12 10:34
閱讀 2897·2021-10-21 09:38
閱讀 1492·2021-09-29 09:48
閱讀 1504·2021-09-29 09:34
閱讀 1098·2021-09-22 10:02