日付形式:
/ ** *フォーマット日 * @Param FMT例:YYYY-MM-DDなど * @返却値 {*} * @constructor * / Date.prototype.Format =関数(FMT){ // 著者:meizz VAR O = { "M +":この .getMonth()+ 1、// 月份 "D +":この .getDate()// 日 "H +":この .getHours()// 小时 "M +":この .getMinutes()// 分 "S +":この .getSeconds()// 秒 "Q +":Math.floor((本。 getMonth()+ 3)/ 3)、// 季度 "S":この.getMilliseconds()// 毫秒 }。 もし(/(y+)/.test(fmt))FMT = fmt.replace(正規表現$ 1、(。この .getFullYear()+ "").SUBSTR(4 -正規表現$ 1 .LENGTH))。 用(O内のvar k)が あれば(新しい正規表現( "(" + K + ")")。テスト(FMT))FMT = fmt.replace(正規表現。$ 1、(正規表現。$ 1.length == 1)?( O [K]):(( "00" + O [K])SUBSTR(( "" + 。O [K])の長さ)))。 リターンのfmt; }。
日付日付を加えた番号の後に取得など:
/ ** *数値は、余分な日付日付日付を取得した後、など * @パラメータ間隔Y等の指定されたタイプ:代表 * @Param 数削減の価値を高めるために必要|| * @Param FMT日付形式のオプションパラメータのデフォルト:木2019年10月24日16時57分12秒GMT + 0800( 中国標準時)形式 * @returns {日} * / Date.prototype.dateAdd = 関数(間隔、数、FMT) { VARさd = この; VAR kは = { 'Y' 'FullYear'、 'Q': '月'、 'M': '月'、 'W': '日'、 'D': '日'、 'H': '時間」、 'N' '分'、 'S': '秒'、 'MS': 'ミリ' }。 Nが存在する = { 'G':3、 'W':7 }。 評価( 'd.set' + K [区間] + '(d.get' + K [区間] + '()+' +((N [区間] || 1)*数)+ ')' )。 場合(FMT){ 戻りd.Format(FMT)を、 } リターンD; }。
その上に2つの計算日の日付との違い:
/ ** *など、2つの日付の日付の間の差を計算します * @Paramの例を表示する間隔を指定されたタイプ:yは:年です * @Param objDate2 objDate2 <=この負 * @返却値 {*} * / Date.prototype.dateDiff = 関数(間隔、objDate2) { VaRのD = この、I = {}、T = d.getTime()、T2 = objDate2.getTime()。 I [ 'Y'] = objDate2.getFullYear() - d.getFullYear()。 I [ 'Q'] = I [ 'Y'] * 4 + Math.floor(objDate2.getMonth()/ 4)-Math.floor(d.getMonth()/ 4 )。 I [ 'M'] = I [ 'Y'] * 12 + objDate2.getMonth() - d.getMonth()。 I [ 'MS'] = objDate2.getTime() - d.getTime()。 I [ 'W'] = Math.floor((T2 +3.456億)/(6.048億)) - Math.floor((T +3.456億)/(6.048億))。 I [ 'D'] = Math.floor(T2 / 86400000)-Math.floor(T / 86400000 )。 I [ 'H'] = Math.floor(T2 / 3600000)-Math.floor(T / 3600000 )。 I [ 'N'] = Math.floor(T2 / 60000)-Math.floor(T / 60000 )。 I [ 'S'] = Math.floor(T2 / 1000)-Math.floor(T / 1000 )。 戻るI [間隔]; }。
デモ:
console.log(新しい日付( '2019年10月23日')DATEADD( 'Y'、1、 'YYYY-MM-DD')。)结果为:2020年10月23日