js 各式各樣的時間計算以及時間轉換

IOSbug:!!!

1:UTC轉24小時制時間--年月日 時分數組

function utc2beijing(utc_datetime) {  // UTC轉時間
    function formatFunc(str) {    //格式化顯示
        return str > 9 ? str : '0' + str
      }
      var UTCDateString= utc_datetime //2017-11-16 PM 01:23
      var date2 = new Date(UTCDateString);     //這步是關鍵
      var year = date2.getFullYear();
      var mon = formatFunc(date2.getMonth() + 1);
      var day = formatFunc(date2.getDate());
      var hour = date2.getHours();
      // var noon = hour >= 12 ? 'PM' : 'AM';
      // hour = hour>=12?hour-12:hour;
      // hour = formatFunc(hour);
      var min = formatFunc(date2.getMinutes());
      var dateStr = year+'-'+mon+'-'+day+' '+hour+':'+min;
      return dateStr
} 
複製代碼

最後結果markdown

utc2beijing("2018-12-18T23:36:26+08:00")
"2018-12-18 23:36"
複製代碼

2:日期轉換 Tue Jan 01 2019 09:59:18 GMT+0800 (UTC時間) ---> 2018-12-18--------------------spa

function changeDateType(date) {
    var now = new Date(date);
    var year = now.getFullYear();
    var honth = now.getMonth() + 1;
    var day = now.getDate();
    return `${year}-${honth}-${day}`
}
複製代碼

3:幾天前 - 幾小時前 - 幾秒前 jsDateDiff('2018/12/19 22:00:00')-----------------code

function jsDateDiff(pTime){   
        var d_minutes,d_hours,d_days,d;
        var timeNow = parseInt(new Date().getTime()/1000);
        pTime_new = new Date(pTime).getTime()/1000;
        d = timeNow - pTime_new;       
        d_days = parseInt(d/86400);       
        d_hours = parseInt(d/3600);       
        d_minutes = parseInt(d/60);    
        if(d_days>0 && d_days<4){       
            return d_days+"天前";       
        }else if(d_days<=0 && d_hours>0){       
            return d_hours+"小時前";       
        }else if(d_hours<=0 && d_minutes>0){       
            return d_minutes+"分鐘前";       
        }else{
            return pTime;
        }
    }
複製代碼

**4: 獲取當前日期2018-12-18 ------------------------------ **orm

function getCurrentDate(format) {
    var now = new Date();
    var year = now.getFullYear(); //獲得年份
    var month = now.getMonth(); //獲得月份
    var date = now.getDate(); //獲得日期
    var day = now.getDay(); //獲得周幾
    var hour = now.getHours(); //獲得小時
    var minu = now.getMinutes(); //獲得分鐘
    var sec = now.getSeconds(); //獲得秒
    month = month + 1;
    if (month < 10) month = "0" + month;
    if (date < 10) date = "0" + date;
    if (hour < 10) hour = "0" + hour;
    if (minu < 10) minu = "0" + minu;
    if (sec < 10) sec = "0" + sec;
    var time = "";
    if (format == 1) { //精確到天
        time = year + "-" + month + "-" + date;
    } else if (format == 2) { //精確到分
        time = year + "-" + month + "-" + date + " " + hour + ":" + minu + ":" + sec;
    }
    return time;
}
複製代碼

結果:getCurrentDate(1)精確到天 getCurrentDate(2)精確到分--------------對象

5:時間往前加,dateAdd(14) 14天后的時間------------------------------字符串

function dateAdd(add) { 
    var dateTime = new Date();
    dateTime = dateTime.setDate(dateTime.getDate() + add);
    dateTime = new Date(dateTime);
    return dateTime
}
複製代碼

** 結果: //dateAdd(14) 14天后 =》Tue Jan 01 2019 09:59:18 GMT+0800 (中國標準時間)-**get

6:時間戳轉化爲年 月 日 時 分 秒---------------it

function formatTime(number, format) {
    var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
    var returnArr = [];

    var date = new Date(number);
    returnArr.push(date.getFullYear() + '年');
    returnArr.push(formatNumber(date.getMonth() + 1 + '月'));
    returnArr.push(formatNumber(date.getDate() + '日'));
    returnArr.push(formatNumber(date.getHours()));
    returnArr.push(formatNumber(date.getMinutes()));
    returnArr.push(formatNumber(date.getSeconds()));
    // returnArr.push(formatNumber(date.getMilliseconds()));
    for (var i in returnArr) {
        format = format.replace(formateArr[i], returnArr[i]);
    }
    return format;
}
複製代碼

number: 傳入時間戳;format:返回格式,支持自定義,但參數必須與formateArr裏保持一致--------io

7://得到兩個日期之間相差的天數

function daysBetween(date1, date2) {
    var date1Str = date1.split("-"); //將日期字符串分隔爲數組,數組元素分別爲年.月.日
    //根據年 . 月 . 日的值建立Date對象
    var date1Obj = new Date(date1Str[0], (date1Str[1] - 1), date1Str[2]);
    var date2Str = date2.split("-");
    var date2Obj = new Date(date2Str[0], (date2Str[1] - 1), date2Str[2]);
    var t1 = date1Obj.getTime();
    var t2 = date2Obj.getTime();
    var dateTime = 1000 * 60 * 60 * 24; //每一天的毫秒數
    var minusDays = Math.floor(((t2 - t1) / dateTime)); //計算出兩個日期的天數差
    var days = Math.abs(minusDays); //取絕對值
    return days;
}
// s1 = "2018-8-10"
// s2 = "2018-8-22"
// console.log(daysBetween(s1, s2))
複製代碼
相關文章
相關標籤/搜索