溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript如何實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)換成日期格式

發(fā)布時(shí)間:2020-11-06 15:17:04 來源:億速云 閱讀:331 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)JavaScript如何實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)換成日期格式,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

JS和jQuery用了一段時(shí)間,最近發(fā)現(xiàn)他們沒有自帶的時(shí)間戳格式化函數(shù),于是綜合網(wǎng)上相關(guān)的時(shí)間戳格式化函數(shù),自己寫了一個(gè)時(shí)間戳格式化函數(shù)DateToTime,這個(gè)函數(shù)提供了多種格式化樣式:

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

這里的時(shí)間有時(shí)僅輸入Y-m-d H:i也是可以使用的

/**
 * [TimeToDate時(shí)間戳轉(zhuǎn)換為日期]
 * @param {[type]} unixTime [時(shí)間戳]
 * @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);//時(shí)間戳為10位需*1000,時(shí)間戳為13位的話不需乘1000
    var datetime = "";
    datetime += date.getFullYear() + type.substring(1,2);
    datetime += (date.getMonth()+1 < 10 &#63; '0'+(date.getMonth()+1) : date.getMonth()+1) + type.substring(3,4);
    datetime += (date.getDate() < 10 &#63; '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 &#63; '0'+(date.getHours()) : date.getHours());
                if (type.substring(9,10)) {
                    datetime += type.substring(8,9) + (date.getMinutes() < 10 &#63; '0'+(date.getMinutes()) : date.getMinutes());
                    if (type.substring(11,12)) {
                        datetime += type.substring(10,11) + (date.getSeconds() < 10 &#63; '0'+(date.getSeconds()) : date.getSeconds());
                    };
                };
            };
        }else{
            datetime += " " + (date.getHours() < 10 &#63; '0'+(date.getHours()) : date.getHours());
            if (type.substring(8,9)) {
                datetime += type.substring(7,8) + (date.getMinutes() < 10 &#63; '0'+(date.getMinutes()) : date.getMinutes());
                if (type.substring(10,11)) {
                    datetime += type.substring(9,10) + (date.getSeconds() < 10 &#63; '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 日期轉(zhuǎn)換時(shí)間戳]
 * @param {[type]} day [日期格式,僅支持標(biāo)準(zhǔn)格式]
 */
function DateToTime(day){
	// re = /(\d{4})(&#63;:-(\d{1,2})(&#63;:-(\d{1,2}))&#63;)&#63;(&#63;:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))&#63;/.exec(day); // 原
	re = /(\d{4})(&#63;:\D&#63;(\d{1,2})(&#63;:\D&#63;(\d{1,2}))&#63;[^\d\s]&#63;)&#63;(&#63;:\s+(\d{1,2})\D&#63;(\d{1,2})\D&#63;(\d{1,2}))&#63;/.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時(shí)08分31秒");
DateToTime("2018");

補(bǔ)充時(shí)間戳與日期相互轉(zhuǎn)換:

function TimeToDate(date,format) {
  format = format || 'YYYY-MM-DD hh:mm:ss';
  var dateTest = (/^(-)&#63;\d{1,10}$/.test(date) || /^(-)&#63;\d{1,13}$/.test(date));
  if(/^[1-9]*[1-9][0-9]*$/.test(date) && dateTest){
    var vdate = parseInt(date);
    if (/^(-)&#63;\d{1,10}$/.test(vdate)) {
      vdate = vdate * 1000;
    } else if (/^(-)&#63;\d{1,13}$/.test(vdate)) {
      vdate = vdate * 1000;
    } else if (/^(-)&#63;\d{1,14}$/.test(vdate)) {
      vdate = vdate * 100;
    } else {
      alert("時(shí)間戳格式不正確");
      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 {
    //將日期轉(zhuǎn)換成時(shí)間戳
    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" &#63; "00":digit(ymdhms[str]);
    });
  };
  function digit(num) {
    return num < 10 &#63; "0" + (num | 0) :num;
  };
};

以上就是JavaScript如何實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)換成日期格式,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI