摘要:一行代碼實現時間戳轉時間格式前端開發過程中,常常需要將時間戳轉化為標準時間格式供用戶瀏覽。新思路為了將時間戳轉換為我們需要的時間格式,我們寫了兩個函數,加起來十幾行。
一行代碼實現時間戳轉時間格式
前端開發過程中,常常需要將時間戳轉化為標準時間格式供用戶瀏覽。不借助方法庫的情況下,如何又快又好的實現呢?下面介紹兩種方法。
老方法平常用的基本是這個方法,用Date方法依次將年月日時分秒一個個算出來,然后拼接成需要的時間格式字符串。
function transformTime(timestamp = +new Date()) { if (timestamp) { var time = new Date(timestamp); var y = time.getFullYear(); //getFullYear方法以四位數字返回年份 var M = time.getMonth() + 1; // getMonth方法從 Date 對象返回月份 (0 ~ 11),返回結果需要手動加一 var d = time.getDate(); // getDate方法從 Date 對象返回一個月中的某一天 (1 ~ 31) var h = time.getHours(); // getHours方法返回 Date 對象的小時 (0 ~ 23) var m = time.getMinutes(); // getMinutes方法返回 Date 對象的分鐘 (0 ~ 59) var s = time.getSeconds(); // getSeconds方法返回 Date 對象的秒數 (0 ~ 59) return y + "-" + M + "-" + d + " " + h + ":" + m + ":" + s; } else { return ""; } } transformTime(); // "2018-8-8 12:9:12"老方法改進版
上面的轉換方法,通過將時間戳轉換為Date實例,利用Date對應的方法獲取對應的年月日時分秒,獲取的時間格式是‘2018-8-8 12:9:12’,看著有點別扭。為了轉化為我們常用的時間格式,還需要注意對小于10的值,在前面添加字符串‘0’,轉換為‘2018-08-08 12:09:12’這種時間格式。
function transformTime(timestamp = +new Date()) { if (timestamp) { var time = new Date(timestamp); var y = time.getFullYear(); var M = time.getMonth() + 1; var d = time.getDate(); var h = time.getHours(); var m = time.getMinutes(); var s = time.getSeconds(); return y + "-" + addZero(M) + "-" + addZero(d) + " " + addZero(h) + ":" + addZero(m) + ":" + addZero(s); } else { return ""; } } function addZero(m) { return m < 10 ? "0" + m : m; } transformTime(); // "2018-08-08 12:09:12"
對返回小于10的時間數值進行處理,用‘addZero’方法為字符串添加‘0’,這樣格式就對稱了。
新思路為了將時間戳轉換為我們需要的時間格式,我們寫了兩個函數,加起來十幾行。前段時間,部門大佬告知了另外一種方式,一行代碼完成時間戳轉換為‘YYYY-MM-DD HH:mm:ss’形式的時間格式,頓時代碼精簡了很多,話不多說,亮出代碼
function time(time = +new Date()) { var date = new Date(time + 8 * 3600 * 1000); // 增加8小時 return date.toJSON().substr(0, 19).replace("T", " "); } time(); // "2018-08-09 18:25:54"
Date的‘toJSON’方法返回格林威治時間的JSON格式字符串,實際是使用‘toISOString’方法的結果。字符串形如‘2018-08-09T10:20:54.396Z’,轉化為北京時間需要額外增加八個時區,我們需要取字符串前19位,然后把‘T’替換為空格,即是我們需要的時間格式。
function time(time = +new Date()) { var date = new Date(time + 8 * 3600 * 1000); return date.toJSON().substr(0, 19).replace("T", " ").replace(/-/g, "."); } time(); // "2018.08.09 18:25:54"
把時間格式中的‘-’修改為‘.’或者其他符號都是可以的。對比老方法,這種方法代碼量比以前省了不止一星半點的,讀起來也簡潔多了。如果時間格式需要毫秒數,只需要獲取前23位字符串,和上面一樣用replace方法替換。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96921.html
摘要:對于日期的操作可以說是比較常見的了日期與格式化字符串互轉,日期與時間戳互轉,日期的加減操作等,下面主要介紹下常見的需求場景如何實現基本包引入主要需要引入時間和日期的處理包,后面的基本操作都是基于此獲取當前時間獲取當前時間,有幾種方式 對于日期的操作可以說是比較常見的case了,日期與格式化字符串互轉,日期與時間戳互轉,日期的加減操作等,下面主要介紹下常見的需求場景如何實現 1. 基本...
摘要:前言做項目其實經常需要與時間接觸。時間戳與時間的轉換問題,在這做一個記錄。我自己試了最新版的,,返回的是一樣的。 前言 做項目其實經常需要與時間接觸。時間戳與時間的轉換問題,在這做一個記錄。 1.獲取特定格式的時間 myDate.getYear(); //獲取當前年份(2位) myDate.getFullYear(); //獲取完整的年份(4位,1970-????) myDate.ge...
閱讀 821·2023-04-25 19:49
閱讀 3756·2021-09-30 09:47
閱讀 2742·2021-09-13 10:21
閱讀 2680·2021-08-24 10:04
閱讀 3168·2019-08-30 15:55
閱讀 2296·2019-08-30 15:55
閱讀 2399·2019-08-30 15:54
閱讀 3471·2019-08-30 13:53