欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中日期的加減法

 更新時(shí)間:2015年05月06日 11:05:47   投稿:hebedich  
JavaScript實(shí)現(xiàn)日期加減計(jì)算功能代碼實(shí)例,因?yàn)樵趈s中沒有類似C#中的AddDays方法,所以要想實(shí)現(xiàn)日期加減的話,就需要自己寫函數(shù)來實(shí)現(xiàn)。

今天就算對(duì)JS中日期的加減法做個(gè)總結(jié),一共兩步

第一步,引入date.format.js,這個(gè)JS的作用是將日期轉(zhuǎn)為指定的格式,代碼如下

var dateFormat = function () {
  var  token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
    timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
    timezoneClip = /[^-+\dA-Z]/g,
    pad = function (val, len) {
      val = String(val);
      len = len || 2;
      while (val.length < len) val = "0" + val;
      return val;
    };
 
  // Regexes and supporting functions are cached through closure
  return function (date, mask, utc) {
    var dF = dateFormat;
 
    // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
    if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
      mask = date;
      date = undefined;
    }
 
    // Passing date through Date applies Date.parse, if necessary
    date = date ? new Date(date) : new Date;
    if (isNaN(date)) throw SyntaxError("invalid date");
 
    mask = String(dF.masks[mask] || mask || dF.masks["default"]);
 
    // Allow setting the utc argument via the mask
    if (mask.slice(0, 4) == "UTC:") {
      mask = mask.slice(4);
      utc = true;
    }
 
    var  _ = utc ? "getUTC" : "get",
      d = date[_ + "Date"](),
      D = date[_ + "Day"](),
      m = date[_ + "Month"](),
      y = date[_ + "FullYear"](),
      H = date[_ + "Hours"](),
      M = date[_ + "Minutes"](),
      s = date[_ + "Seconds"](),
      L = date[_ + "Milliseconds"](),
      o = utc ? 0 : date.getTimezoneOffset(),
      flags = {
        d:  d,
        dd:  pad(d),
        ddd: dF.i18n.dayNames[D],
        dddd: dF.i18n.dayNames[D + 7],
        m:  m + 1,
        mm:  pad(m + 1),
        mmm: dF.i18n.monthNames[m],
        mmmm: dF.i18n.monthNames[m + 12],
        yy:  String(y).slice(2),
        yyyy: y,
        h:  H % 12 || 12,
        hh:  pad(H % 12 || 12),
        H:  H,
        HH:  pad(H),
        M:  M,
        MM:  pad(M),
        s:  s,
        ss:  pad(s),
        l:  pad(L, 3),
        L:  pad(L > 99 ? Math.round(L / 10) : L),
        t:  H < 12 ? "a" : "p",
        tt:  H < 12 ? "am" : "pm",
        T:  H < 12 ? "A" : "P",
        TT:  H < 12 ? "AM" : "PM",
        Z:  utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
        o:  (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
        S:  ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
      };
 
    return mask.replace(token, function ($0) {
      return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
    });
  };
}();
 
// Some common format strings
dateFormat.masks = {
  "default":   "ddd mmm dd yyyy HH:MM:ss",
  shortDate:   "m/d/yy",
  mediumDate:   "mmm d, yyyy",
  longDate:    "mmmm d, yyyy",
  fullDate:    "dddd, mmmm d, yyyy",
  shortTime:   "h:MM TT",
  mediumTime:   "h:MM:ss TT",
  longTime:    "h:MM:ss TT Z",
  isoDate:    "yyyy-mm-dd",
  isoTime:    "HH:MM:ss",
  isoDateTime:  "yyyy-mm-dd'T'HH:MM:ss",
  isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};
 
// Internationalization strings
dateFormat.i18n = {
  dayNames: [
    "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
    "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
  ],
  monthNames: [
    "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
  ]
};
 
// For convenience...
Date.prototype.format = function (mask, utc) {
  return dateFormat(this, mask, utc);
};

第二步,將時(shí)間轉(zhuǎn)換為毫秒進(jìn)行加減計(jì)算,然后再用上面的js的轉(zhuǎn)為指定的日期

var nowDate = new Date();
//加法操作
var ysDate = new Date(nowDate.getTime()-30*24*60*60*1000).format('yyyy-mm-dd');
//減法操作
var yeDate = new Date(nowDate.getTime()-24*60*60*1000).format('yyyy-m-d');

通過以上兩步就實(shí)現(xiàn)了,JS中日期的加減法,怎么樣簡(jiǎn)單吧!快去試試!

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • JavaScript數(shù)組各種常見用法實(shí)例分析

    JavaScript數(shù)組各種常見用法實(shí)例分析

    這篇文章主要介紹了JavaScript數(shù)組各種常見用法實(shí)例分析,包括數(shù)組的添加、刪除、替換、還原等常見技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-08-08
  • js中class的點(diǎn)擊事件沒有效果的解決方法

    js中class的點(diǎn)擊事件沒有效果的解決方法

    下面小編就為大家?guī)硪黄猨s中class的點(diǎn)擊事件沒有效果的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • Bootstrap編寫一個(gè)在當(dāng)前網(wǎng)頁彈出可關(guān)閉的對(duì)話框 非彈窗

    Bootstrap編寫一個(gè)在當(dāng)前網(wǎng)頁彈出可關(guān)閉的對(duì)話框 非彈窗

    這篇文章主要介紹了Bootstrap編寫一個(gè)在當(dāng)前網(wǎng)頁彈出可關(guān)閉的對(duì)話框,不用跳轉(zhuǎn),非彈窗,感興趣的小伙伴們可以參考一下
    2016-06-06
  • JavaScript Date對(duì)象應(yīng)用實(shí)例分享

    JavaScript Date對(duì)象應(yīng)用實(shí)例分享

    這篇文章主要分享了JavaScript Date對(duì)象應(yīng)用實(shí)例,獲取日期時(shí)間,倒計(jì)時(shí)功能實(shí)現(xiàn),限時(shí)搶購(gòu)活動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 分享Javascript實(shí)用方法二

    分享Javascript實(shí)用方法二

    javascript一種直譯式腳本語言,是一種動(dòng)態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型,本文給大家分享javascript實(shí)用方法二,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Bootstrap Modal遮罩彈出層代碼分享

    Bootstrap Modal遮罩彈出層代碼分享

    本文給大家分享的這段代碼并非是Bootstrap的遮罩,只是簡(jiǎn)單版的遮罩效果,對(duì)bootstrap modal 遮罩效果感興趣的朋友可以參考下本文
    2016-11-11
  • JavaScript中原始值和引用值深入講解

    JavaScript中原始值和引用值深入講解

    原始值代表原始數(shù)據(jù)類型的值,也叫基本數(shù)據(jù)類型,包括 Number、Stirng、Boolean、Null、Underfined,下面這篇文章主要給大家介紹了關(guān)于JavaScript中原始值和引用值深入講解的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 原生JavaScrpit中異步請(qǐng)求Ajax實(shí)現(xiàn)方法

    原生JavaScrpit中異步請(qǐng)求Ajax實(shí)現(xiàn)方法

    這篇文章主要介紹了原生JavaScrpit中異步請(qǐng)求Ajax實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-11-11
  • 去除JavaScript對(duì)象中空值和空對(duì)象的四種方式

    去除JavaScript對(duì)象中空值和空對(duì)象的四種方式

    開發(fā)時(shí)遇到一個(gè)問題,需要將對(duì)象中的空值和空對(duì)象去除,所以這篇文章主要給大家介紹了關(guān)于去除JavaScript對(duì)象中空值和空對(duì)象的四種方式,需要的朋友可以參考下
    2023-09-09
  • HTTP?302?redirect應(yīng)用及介紹

    HTTP?302?redirect應(yīng)用及介紹

    這篇文章主要為大家介紹了HTTP?302?redirect應(yīng)用及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評(píng)論