將時間戳轉換成特定時間格式的實用函數


后端接口返回的時間通常都是時間戳,而我們前端的童鞋們必須根據需求來展示成特定的格式。如 2018/09/04 10:28:38 或者 2018-09-04 10:28:38,如果你有這個需求就可以把我的函數copy走了。不說了上代碼。

 /**
  * 
  * @param {Number} n: 需要補齊兩位數的數字
  * @return {String} String: 前面用0補齊的兩位或多位數字,字符類型。如: 2->02 12->12
  */
function doubleNum(n) {
    const str = "" + n;
    // return str[1] ? str : `0${str}`;
   return str.padStart(2, "0"); }
/** * * @param {*} timestamp 時間戳或者時間對象,以及可以轉換成時間對象的字符串 * @param {String} sep 分隔符,如:"-"、"/" 默認是"-" * @return 日期格式的字符串 如:2018-09-04 2018/09/04 */ function date(timestamp, sep = "-") { var _date = new Date(timestamp); var year = _date.getFullYear(); var month = _date.getMonth() + 1; var day = _date.getDate(); return [year, month, day].map(doubleNum).join(sep); } /** * * @param {String} timestamp 時間戳或者時間對象,以及可以轉換成時間對象的字符串 * @param {String} sep 分隔符,如:":" 默認是":" * @return 時間格式的字符串 如:10:52:08 */ function time(timestamp, sep = ":") { var _date = new Date(timestamp); var hours = _date.getHours(); var minutes = _date.getMinutes(); var seconds = _date.getSeconds(); return [hours, minutes, seconds].map(doubleNum).join(sep); } /** * * @param {*} timestamp 時間戳或者時間對象,以及可以轉換成時間對象的字符串 * @param {String} dateSep 日期分隔符,如:"-"、"/" 默認是"-" * @param {String} timeSep 時間分隔符,如:":" 默認是":" * @return 時間格式的字符串 如:2018-09-04 10:52:08 */ function dateTime(timestamp, dateSep = "-", timeSep = ":") { return date(timestamp, dateSep) + " " + time(timestamp, timeSep); }

如果不支持es6的語法,你可以稍微改一下代碼,將es6改成es5的。代碼如下:

 /**
  * 
  * @param {Number} n: 需要補齊兩位數的數字
  * @return {String} String: 前面用0補齊的兩位或多位數字,字符類型。如: 2->02 12->12
  */
function doubleNum(n) {
    const str = "" + n;
    return str[1] ? str : "0"+str;
}

/**
 * 
 * @param {*} timestamp 時間戳或者時間對象,以及可以轉換成時間對象的字符串
 * @param {String} sep 分隔符,如:"-"、"/"   默認是"-"
 * @return 日期格式的字符串 如:2018-09-04     2018/09/04
 */
function date(timestamp, sep) {
    sep = sep || "-";
    var _date = new Date(timestamp);
    var year = _date.getFullYear();
    var month = _date.getMonth() + 1;
    var day = _date.getDate();
    return [year, month, day].map(doubleNum).join(sep);
}

/**
 * 
 * @param {String} timestamp 時間戳或者時間對象,以及可以轉換成時間對象的字符串
 * @param {String} sep 分隔符,如:":"   默認是":"
 * @return 時間格式的字符串 如:10:52:08
 */
function time(timestamp, sep) {
     sep = sep || ":";
    var _date = new Date(timestamp);
    var hours = _date.getHours();
    var minutes = _date.getMinutes();
    var seconds = _date.getSeconds();
    return [hours, minutes, seconds].map(doubleNum).join(sep);
}

/**
 * 
 * @param {*} timestamp 時間戳或者時間對象,以及可以轉換成時間對象的字符串
 * @param {String} dateSep 日期分隔符,如:"-"、"/"   默認是"-"
 * @param {String} timeSep 時間分隔符,如:":"   默認是":"
 * @return 時間格式的字符串 如:2018-09-04 10:52:08
 */
function dateTime(timestamp, dateSep, timeSep) {
    dateSep = dateSep || "-";
    timeSep = timeSep || ":";
    return date(timestamp, dateSep) + " " + time(timestamp, timeSep);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM