搜尋

首頁  >  問答  >  主體

javascript - js 關於時間的轉換以及時間的加減。

一、關於時間的轉換

默认

#

mounted () {
  this.HomePageDisplay();
  var myDate = new Date();
  var reg=/[\u4E00-\u9FA5]/g;
  this.latestS=myDate.toLocaleString().replace(/\//g,'-').replace(/:/g,'-').replace(/[ ]/g,"").replace(reg,'');
  console.log(this.latestS)
},

這個我是轉換的。

我想要的是 2017-07-05-04 。 。

二、關於時間的加減。


1、2017-07-05-04  减去10个小时。 格式不变。。

2、 当前的小时减去10个小时。。    下面代码我写的。 给自己蠢哭了。 求指点。。
    


 var timeData = [
    myDate.getHours()-10, myDate.getHours()-9, myDate.getHours()-8, myDate.getHours()-7, myDate.getHours()-6, myDate.getHours()-5, myDate.getHours()-4, myDate.getHours()-3, myDate.getHours()-2, myDate.getHours()-1, myDate.getHours(),
  ];
phpcn_u1582phpcn_u15822761 天前869

全部回覆(4)我來回復

  • 迷茫

    迷茫2017-07-05 10:42:20

    關於時間的處理,建議引入 moment 庫。 http://momentjs.com/docs/#/pa...

    var t = moment().format('YYYY-MM-DD-HH');
    console.log(t); //2017-07-03-18
    var tsub = moment(t, 'YYYY-MM-DD-HH').subtract(10, 'hours').format('YYYY-MM-DD-HH');
    console.log(tsub); //2017-07-03-08

    回覆
    0
  • 阿神

    阿神2017-07-05 10:42:20

    1. 需要2017-03-14-04-50-08這樣的格式的話:

      var str = '2017/3/14 下午4:50:08';
      var arr = str.split(/[ ^d ]+/g).map(item => (parseInt(item, 10) < 10 ? '0' + parseInt(item, 10) : item )).join('-');
      console.log(arr);

    2. 至於時間的加減的話,如樓上所言,項目引入moment.js等庫其實挺好的。

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-05 10:42:20

    雷雷

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-05 10:42:20

    Date.prototype.past = function(pattern, pastDays) {

    function zeroize(num) {
        return num < 10 ? "0" + num : num;
    };
    var pastday = new Date((this - 0) - 1000 * 60 * 60 * 24 * pastDays);
    var pattern = pattern; //    YYYY-MM-DD 或 MM-DD-YYYY 或 YYYY-MM-DD , hh : mm : ss
    var dateObj = {
        "Y": pastday.getFullYear(),
        "M": zeroize(pastday.getMonth() + 1),
        "D": zeroize(pastday.getDate()),
        "h": zeroize(pastday.getHours()),
        "m": zeroize(pastday.getMinutes()),
        "s": zeroize(pastday.getSeconds())
    };
    return pattern.replace(/YYYY|MM|DD|hh|mm|ss/g, function(match) {
        switch (match) {
            case "YYYY":
                return dateObj.Y;
            case "MM":
                return dateObj.M;
            case "DD":
                return dateObj.D;
            case "hh":
                return dateObj.h;
            case "mm":
                return dateObj.m;
            case "ss":
                return dateObj.s;
        };
    });

    };
    var timeEnd = new Date();
    timeEnd = timeEnd.getFullYear() + '/' + (timeEnd.getMonth() + 1) + '/' + timeEnd.getDate() + ' ' + timeEnd. getHours() + ':' + timeEnd.getMinutes();
    你的意思是當前時間往前推10分鐘,new Date(timeEnd).past('YYYY-MM-DD hh : mm : ss', 1/ (24*6));

    回覆
    0
  • 取消回覆