您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關JavaScript如何實現將時間戳轉換成日期格式,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
JS和jQuery用了一段時間,最近發現他們沒有自帶的時間戳格式化函數,于是綜合網上相關的時間戳格式化函數,自己寫了一個時間戳格式化函數DateToTime,這個函數提供了多種格式化樣式:
Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m月d日,Y年m月d日 H:i:s
這里的時間有時僅輸入Y-m-d H:i也是可以使用的
/** * [TimeToDate時間戳轉換為日期] * @param {[type]} unixTime [時間戳] * @param {String} type [Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m月d日,Y年m月d日 H:i:s] */ function TimeToDate(unixTime,type="Y-M-D H:i:s"){ var date = new Date(unixTime * 1000);//時間戳為10位需*1000,時間戳為13位的話不需乘1000 var datetime = ""; datetime += date.getFullYear() + type.substring(1,2); datetime += (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + type.substring(3,4); datetime += (date.getDate() < 10 ? '0'+(date.getDate()) : date.getDate()); if (type.substring(5,6)) { if (type.substring(5,6).charCodeAt() > 255) { datetime += type.substring(5,6); if (type.substring(7,8)) { datetime += " " + (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()); if (type.substring(9,10)) { datetime += type.substring(8,9) + (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes()); if (type.substring(11,12)) { datetime += type.substring(10,11) + (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds()); }; }; }; }else{ datetime += " " + (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()); if (type.substring(8,9)) { datetime += type.substring(7,8) + (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes()); if (type.substring(10,11)) { datetime += type.substring(9,10) + (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds()); }; }; }; }; return datetime; }
TimeToDate("1515640111"); //2018-01-11 11:08:31 TimeToDate("1515640111","Y-m-d"); //2018-01-11 TimeToDate("1515640111","Y-m-d H:i"); //2018-01-11 11:08 TimeToDate("1515640111","Y-m-d H:i:s"); //2018-01-11 11:08:31 TimeToDate("1515640111","Y/m/d"); //2018/01/11 TimeToDate("1515640111","Y/m/d H:i:s"); //2018/01/11 11:08:31 TimeToDate("1515640111","Y年m月d日"); //2018年01月11日 TimeToDate("1515640111","Y年m月d日 H:i:s"); //2018年01月11日 11:08:31
/** * [DateToTime 日期轉換時間戳] * @param {[type]} day [日期格式,僅支持標準格式] */ function DateToTime(day){ // re = /(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day); // 原 re = /(\d{4})(?:\D?(\d{1,2})(?:\D?(\d{1,2}))?[^\d\s]?)?(?:\s+(\d{1,2})\D?(\d{1,2})\D?(\d{1,2}))?/.exec(day); return new Date(re[1],(re[2]||1)-1,re[3]||1,re[4]||0,re[5]||0,re[6]||0).getTime()/1000; } DateToTime("2018-01-11 11:08:31"); DateToTime("2018-01-11"); DateToTime("2018年01月11日 11時08分31秒"); DateToTime("2018");
補充時間戳與日期相互轉換:
function TimeToDate(date,format) { format = format || 'YYYY-MM-DD hh:mm:ss'; var dateTest = (/^(-)?\d{1,10}$/.test(date) || /^(-)?\d{1,13}$/.test(date)); if(/^[1-9]*[1-9][0-9]*$/.test(date) && dateTest){ var vdate = parseInt(date); if (/^(-)?\d{1,10}$/.test(vdate)) { vdate = vdate * 1000; } else if (/^(-)?\d{1,13}$/.test(vdate)) { vdate = vdate * 1000; } else if (/^(-)?\d{1,14}$/.test(vdate)) { vdate = vdate * 100; } else { alert("時間戳格式不正確"); return; } var setdate = new Date(vdate); return parse({YYYY:setdate.getFullYear(), MM:digit(setdate.getMonth()+1), DD:digit(setdate.getDate()) , hh:digit(setdate.getHours()), mm:digit(setdate.getMinutes()), ss:digit(setdate.getSeconds()) }, format); }else { //將日期轉換成時間戳 var arrs = date.match(/\w+|d+/g), newdate = new Date(arrs[0],parseInt(arrs[1])-1,arrs[2],arrs[3]||0,arrs[4]||0,arrs[5]||0), timeStr = Math.round(newdate.getTime() / 1000); return timeStr; } function parse(ymdhms, format) { var regymdzz = "YYYY|MM|DD|hh|mm|ss|zz"; return format.replace(new RegExp(regymdzz,"g"), function(str, index) { return str == "zz" ? "00":digit(ymdhms[str]); }); }; function digit(num) { return num < 10 ? "0" + (num | 0) :num; }; };
以上就是JavaScript如何實現將時間戳轉換成日期格式,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。