This commit is contained in:
2025-12-26 22:35:18 +08:00
commit 9cf62f793b
4263 changed files with 728989 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
'use strict';var _bind=Function.prototype.bind;var _slice=Array.prototype.slice;function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}else {return Array.from(arr)}}(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):global.moment=factory()})(window,function(){'use strict';var FORMAT_LIST={'l':'YYYY-MM-DD','ll':'YYYY年MM月DD日','k':'YYYY-MM-DD hh:mm','kk':'YYYY年MM月DD日 hh点mm分','kkk':'YYYY年MM月DD日 hh点mm分 q','f':'YYYY-MM-DD hh:mm:ss','ff':'YYYY年MM月DD日 hh点mm分ss秒','fff':'YYYY年MM月DD日 hh点mm分ss秒 星期w','n':'MM-DD','nn':'MM月DD日'};var _SECONDS=1000;var _MINUTES=1000*60;var _HOURS=1000*60*60;var _DAYS=1000*60*60*24;var _WEEKS=_DAYS*7;var _YEARS=_DAYS*365;var MSE=new Date(1970,0,1,0,0,0).getTime();var WEEK=['日','一','二','三','四','五','六'];var DAY_STRING=['上午','下午'];var _moment=function _moment(){Utils.initMoment.apply(Utils,[this].concat(_slice.call(arguments)))};var Utils={initMoment:function initMoment(moment_obj,arg_1,type){var _date=new Date,date_bak=_date;if(arg_1!=undefined){if(Utils.isNumber(arg_1)){if(arg_1<9999999999)arg_1=arg_1*1000;_date.setTime(arg_1)}else if(Utils.isArray(arg_1)){Utils.padMonth(arg_1);_date=new (_bind.apply(Date,[null].concat(_toConsumableArray(arg_1))))}else if(Utils.isDate(arg_1)){_date=arg_1}else if(Utils.isString(arg_1)){_date=Utils.parse(arg_1)}else if(arg_1 instanceof _moment){return arg_1}}moment_obj._date=_date;if(date_bak===_date&&moment_obj.timeDelay!=0){moment_obj.add(moment_obj.timeDelay,moment.TIME)}},parse:function parse(str){var aspNetJsonRegex=/^(\d{4})\-?(\d{2})\-?(\d{2})\s?\:?(\d{2})?\:?(\d{2})?\:?(\d{2})?$/i;var matched=aspNetJsonRegex.exec(str);if(matched!==null){matched.shift();Utils.padMonth(matched);Utils.popUndefined(matched);return new (_bind.apply(Date,[null].concat(_toConsumableArray(matched))))}var date=new Date(str);if(date=='Invalid Date'){console.error('Invalid date parse from "'+str+'"');return null}else {return date}},popUndefined:function popUndefined(arr){if(arr.length>0&&arr[arr.length-1]==undefined){arr.pop();return Utils.popUndefined(arr)}return arr},padMonth:function padMonth(arr){ //自动补充月份
if(arr.length>1&&arr[1]>0)arr[1]-=1},isLeapYear:function isLeapYear(year){return year%4===0&&year%100!==0||year%400===0},format:function format(date,formatStr){var str=formatStr;str=str.replace(/yyyy|YYYY/,date.getFullYear());str=str.replace(/yy|YY/,date.getYear()%100>8?(date.getYear()%100).toString():'0'+date.getYear()%100);str=str.replace(/MM/,date.getMonth()>8?(date.getMonth()+1).toString():'0'+(date.getMonth()+1));str=str.replace(/M/g,date.getMonth()+1);str=str.replace(/w|W/g,WEEK[date.getDay()]);str=str.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0'+date.getDate());str=str.replace(/d|D/g,date.getDate());str=str.replace(/hh|HH/,date.getHours()>9?date.getHours().toString():'0'+date.getHours());str=str.replace(/h|H/g,date.getHours());str=str.replace(/mm/,date.getMinutes()>9?date.getMinutes().toString():'0'+date.getMinutes());str=str.replace(/m/g,date.getMinutes());str=str.replace(/ss|SS/,date.getSeconds()>9?date.getSeconds().toString():'0'+date.getSeconds());str=str.replace(/s|S/g,date.getSeconds());str=str.replace(/q|Q/g,date.getHours()>12?DAY_STRING[1]:DAY_STRING[0]);return str},timestamp:function timestamp(date){return Math.floor(date.getTime()/1000)},getDays:function getDays(date){return Math.floor((date.getTime()-MSE)/_DAYS)},getHours:function getHours(date){return Math.floor((date.getTime()-MSE)/_HOURS)},getMonths:function getMonths(date){return date.getYear()*12+date.getMonth()+1},isObject:function isObject(input){return Object.prototype.toString.call(input)==='[object Object]'},isArray:function isArray(input){return input instanceof Array||Object.prototype.toString.call(input)==='[object Array]'},isDate:function isDate(input){return input instanceof Date||Object.prototype.toString.call(input)==='[object Date]'},isNumber:function isNumber(input){return input instanceof Number||Object.prototype.toString.call(input)==='[object Number]'},isString:function isString(input){return input instanceof String||Object.prototype.toString.call(input)==='[object String]'},extend:function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i]}}if(hasOwnProp(b,'toString')){a.toString=b.toString}if(hasOwnProp(b,'valueOf')){a.valueOf=b.valueOf}return a},makeGetSet:function makeGetSet(unit){return function(value){if(value!=undefined){ // if(unit=="Month")value = value>0?(value-1):0;
Date.prototype['set'+unit].call(this._date,value);return this}else {return Date.prototype['get'+unit].call(this._date); // return unit=="Month"?(result+1):result;
}}}};function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b)}_moment.prototype={timeDelay:0,format:function format(str){var m=this;var v=this.isValid();if(v!==true)return v;str=str||'l';var formatStr=FORMAT_LIST[str]||str;return Utils.format(m._date,formatStr)},toString:function toString(){var v=this.isValid();if(v!==true)return v;return this._date.toString()},toISOString:function toISOString(){var v=this.isValid();if(v!==true)return v;return this._date.toISOString()},distance:function distance(_m,type){var v=this.isValid();if(v!==true)return v;var m=this;type=type||moment.DAY;_m=moment(_m);v=_m.isValid();if(v!==true)return v;switch(type){case moment.HOUR:return Utils.getHours(m._date)-Utils.getHours(_m._date);case moment.DAY:return Utils.getDays(m._date)-Utils.getDays(_m._date);case moment.MONTH:return Utils.getMonths(m._date)-Utils.getMonths(_m._date);case moment.YEAR:return m._date.getYear()-_m._date.getYear();}return 0},getWeekOfYear:function getWeekOfYear(weekStart){var diff=0;if(weekStart&&weekStart==moment.MONDAY){diff=1}var _date=this._date;var year=_date.getFullYear();var firstDay=new Date(year,0,1);var firstWeekDays=7-firstDay.getDay()+diff;var dayOfYear=(new Date(year,_date.getMonth(),_date.getDate())-firstDay)/(24*3600*1000)+1;return Math.ceil((dayOfYear-firstWeekDays)/7)+1},getWeekOfMonth:function getWeekOfMonth(weekStart){var diff=0;if(weekStart&&weekStart==moment.MONDAY){diff=1}var dayOfWeek=this.day();var day=this.date();return Math.ceil((day-dayOfWeek-1)/7)+(dayOfWeek>=weekStart?1:0)},isLeapYear:function isLeapYear(){var v=this.isValid();if(v!==true)return v;return Utils.isLeapYear(this.year())},isThisYear:function isThisYear(){var v=this.isValid();if(v!==true)return v;return Utils.timestamp(this._date)},isBefore:function isBefore(){var v=this.isValid();if(v!==true)return v;return Utils.timestamp(this._date)},isAfter:function isAfter(){var v=this.isValid();if(v!==true)return v;return Utils.timestamp(this._date)},month:function month(num){var v=this.isValid();if(v!==true)return v;var m=this;if(num==undefined){return m._date.getMonth()+1}num=parseInt(num);num=m._date.setMonth(num-1);return m},add:function add(num,type){var v=this.isValid();if(v!==true)return v;var m=this;num=parseInt(num);type=type||moment.DAY;switch(type){case moment.DAY:m.time(m.time()+num*_DAYS);break;case moment.MONTH:var month_add=m.month()+num;var year_add=Math.floor(month_add/12);month_add=month_add%12;m.add(year_add,moment.YEAR);m.month(month_add);break;case moment.YEAR:m.year(m.year()+num);break;case moment.WEEK:m.time(m.time()+num*_WEEKS);break;case moment.HOUR:m.time(m.time()+num*_HOURS);break;case moment.MINUTE:m.time(m.time()+num*_MINUTES);break;case moment.SECOND:m.time(m.time()+num*_SECONDS);break;case moment.TIME:m.time(m.time()+num);break;}return m},endOf:function endOf(type,set){var v=this.isValid();if(v!==true)return v;var m=this;type=type||moment.DAY;m.startOf(type,set);m.add(1,type); // if (moment.DAY == type||moment.WEEK == type) {
m.add(-1,moment.SECOND); // } else {
// m.add(-1, moment.DAY);
// }
return m},startOf:function startOf(type,set){var v=this.isValid();if(v!==true)return v;var m=this;type=type||moment.DAY;switch(type){case moment.DAY:m.milliseconds(0);m.seconds(0);m.minutes(0);m.hours(0);break;case moment.MONTH:m.date(1);m.startOf(moment.DAY);break;case moment.WEEK:m.startOf(moment.DAY);set=set||moment.SUNDAY;var startDay=set==moment.SUNDAY?0:1;m.add(-m.day()+startDay,moment.DAY);break;case moment.YEAR:m.month(1);m.date(1);m.startOf(moment.DAY);break;case moment.HOUR:m.time(Math.floor(m.time()/_HOURS)*_HOURS);break;}return m},isValid:function isValid(){return Utils.isDate(this._date)?true:'Invalid Date'}};var momentPrototype__proto=_moment.prototype;var methods={'year':'FullYear','day':'Day','date':'Date','hours':'Hours','milliseconds':'Milliseconds','seconds':'Seconds','minutes':'Minutes','time':'Time'};for(var unit in methods){momentPrototype__proto[unit]=Utils.makeGetSet(methods[unit])}var moment=function moment(param){if(param instanceof _moment){return param}else if(Utils.isObject(param)){ //config
if(param.formatString&&Utils.isObject(param.formatString)){Utils.extend(FORMAT_LIST,param.formatString)}if(param.now){_moment.prototype.timeDelay=moment(param.now).time()-moment().time()}}else {return new _moment(param)}};moment.config=function(param){if(param.formatString&&Utils.isObject(param.formatString)){Utils.extend(FORMAT_LIST,param.formatString)}if(param.now){_moment.prototype.timeDelay=moment(param.now).time()-moment().time()}};moment.SECOND=2;moment.MINUTE=3;moment.HOUR=4;moment.DAY=5;moment.MONTH=6;moment.YEAR=7;moment.WEEK=8;moment.TIME=9;moment.MONDAY=1;moment.SUNDAY=2;return moment});

View File

@@ -0,0 +1,409 @@
(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
global.moment = factory();
}(this, function() {
"use strict";
const FORMAT_LIST = {
"l": "YYYY-MM-DD",
"ll": "YYYY年MM月DD日",
"k": "YYYY-MM-DD hh:mm",
"kk": "YYYY年MM月DD日 hh点mm分",
"kkk": "YYYY年MM月DD日 hh点mm分 q",
"f": "YYYY-MM-DD hh:mm:ss",
"ff": "YYYY年MM月DD日 hh点mm分ss秒",
"fff": "YYYY年MM月DD日 hh点mm分ss秒 星期w",
"n": "MM-DD",
"nn": "MM月DD日",
}
const _SECONDS = 1000;
const _MINUTES = 1000 * 60;
const _HOURS = 1000 * 60 * 60;
const _DAYS = 1000 * 60 * 60 * 24;
const _WEEKS = _DAYS * 7;
const _YEARS = _DAYS * 365;
const MSE = new Date(1970, 0, 1, 0, 0, 0).getTime();
const WEEK = ['日', '一', '二', '三', '四', '五', '六'];
const DAY_STRING = ['上午', '下午'];
let _moment = function() {
Utils.initMoment(this, ...arguments);
};
let Utils = {
initMoment(moment_obj, arg_1, type) {
let _date = new Date(),date_bak = _date;
if (arg_1 != undefined) {
if (Utils.isNumber(arg_1)) {
if (arg_1 < 9999999999) arg_1 = arg_1 * 1000;
_date.setTime(arg_1);
} else if (Utils.isArray(arg_1)) {
Utils.padMonth(arg_1);
_date = new Date(...arg_1);
} else if (Utils.isDate(arg_1)) {
_date = arg_1;
} else if (Utils.isString(arg_1)) {
_date = Utils.parse(arg_1);
} else if (arg_1 instanceof _moment) {
return arg_1;
}
}
moment_obj._date = _date;
if(date_bak === _date&&moment_obj.timeDelay!=0){
moment_obj.add(moment_obj.timeDelay,moment.TIME);
}
},
parse(str) {
let aspNetJsonRegex = /^(\d{4})\-?(\d{2})\-?(\d{2})\s?\:?(\d{2})?\:?(\d{2})?\:?(\d{2})?$/i;
var matched = aspNetJsonRegex.exec(str);
if (matched !== null) {
matched.shift();
Utils.padMonth(matched);
Utils.popUndefined(matched);
return new Date(...matched);
}
let date = new Date(str);
if(date=="Invalid Date"){
console.error("Invalid date parse from \""+str+"\"");
return null;
}else{
return date;
}
},
popUndefined(arr) {
if (arr.length > 0 && arr[arr.length - 1] == undefined) {
arr.pop();
return Utils.popUndefined(arr);
}
return arr;
},
padMonth(arr) {
//自动补充月份
if (arr.length > 1 && arr[1] > 0) arr[1] -= 1;
},
isLeapYear(year) {
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
},
format(date, formatStr) {
let str = formatStr;
str = str.replace(/yyyy|YYYY/, date.getFullYear());
str = str.replace(/yy|YY/, (date.getYear() % 100) > 8 ? (date.getYear() % 100).toString() : '0' + (date.getYear() % 100));
str = str.replace(/MM/, date.getMonth() > 8 ? (date.getMonth() + 1).toString() : ('0' + (date.getMonth() + 1)));
str = str.replace(/M/g, (date.getMonth() + 1));
str = str.replace(/w|W/g, WEEK[date.getDay()]);
str = str.replace(/dd|DD/, date.getDate() > 9 ? date.getDate().toString() : '0' + date.getDate());
str = str.replace(/d|D/g, date.getDate());
str = str.replace(/hh|HH/, date.getHours() > 9 ? date.getHours().toString() : '0' + date.getHours());
str = str.replace(/h|H/g, date.getHours());
str = str.replace(/mm/, date.getMinutes() > 9 ? date.getMinutes().toString() : '0' + date.getMinutes());
str = str.replace(/m/g, date.getMinutes());
str = str.replace(/ss|SS/, date.getSeconds() > 9 ? date.getSeconds().toString() : '0' + date.getSeconds());
str = str.replace(/s|S/g, date.getSeconds());
str = str.replace(/q|Q/g, date.getHours() > 12 ? DAY_STRING[1] : DAY_STRING[0]);
return str;
},
timestamp(date) {
return Math.floor(date.getTime() / 1000);
},
getDays(date) {
return Math.floor((date.getTime() - MSE) / _DAYS);
},
getHours(date) {
return Math.floor((date.getTime() - MSE) / _HOURS);
},
getMonths(date) {
return date.getYear() * 12 + date.getMonth() + 1;
},
isObject(input) {
return Object.prototype.toString.call(input) === '[object Object]';
},
isArray(input) {
return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
},
isDate(input) {
return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
},
isNumber(input) {
return input instanceof Number || Object.prototype.toString.call(input) === '[object Number]';
},
isString(input) {
return input instanceof String || Object.prototype.toString.call(input) === '[object String]';
},
extend(a, b) {
for (var i in b) {
if (hasOwnProp(b, i)) {
a[i] = b[i];
}
}
if (hasOwnProp(b, 'toString')) {
a.toString = b.toString;
}
if (hasOwnProp(b, 'valueOf')) {
a.valueOf = b.valueOf;
}
return a;
},
makeGetSet(unit) {
return function(value) {
if (value != undefined) {
// if(unit=="Month")value = value>0?(value-1):0;
Date.prototype["set" + unit].call(this._date, value);
return this;
} else {
return Date.prototype["get" + unit].call(this._date);
// return unit=="Month"?(result+1):result;
}
};
}
}
function hasOwnProp(a, b) {
return Object.prototype.hasOwnProperty.call(a, b);
}
_moment.prototype = {
timeDelay:0,
format(str) {
let m = this;
let v = this.isValid();
if(v!==true)return v;
str = str || "l";
let formatStr = FORMAT_LIST[str] || str;
return Utils.format(m._date, formatStr);
},
toString() {
let v = this.isValid();
if(v!==true)return v;
return this._date.toString();
},
toISOString() {
let v = this.isValid();
if(v!==true)return v;
return this._date.toISOString();
},
distance(_m, type) {
let v = this.isValid();
if(v!==true)return v;
let m = this;
type = type || moment.DAY;
_m = moment(_m);
v = _m.isValid();
if(v!==true)return v;
switch (type) {
case moment.HOUR:
return Utils.getHours(m._date) - Utils.getHours(_m._date);
case moment.DAY:
return Utils.getDays(m._date) - Utils.getDays(_m._date);
case moment.MONTH:
return Utils.getMonths(m._date) - Utils.getMonths(_m._date);
case moment.YEAR:
return m._date.getYear() - _m._date.getYear();
}
return 0;
},
getWeekOfYear(weekStart){
let diff = 0;
if(weekStart&&weekStart==moment.MONDAY){
diff=1;
}
let _date = this._date;
let year = _date.getFullYear();
let firstDay = new Date(year, 0, 1);
let firstWeekDays = 7 - firstDay.getDay() + diff;
let dayOfYear = (((new Date(year, _date.getMonth(), _date.getDate())) - firstDay) / (24 * 3600 * 1000)) + 1;
return Math.ceil((dayOfYear - firstWeekDays) / 7) + 1;
},
getWeekOfMonth(weekStart) {
let diff = 0;
if(weekStart&&weekStart==moment.MONDAY){
diff=1;
}
var dayOfWeek = this.day();
var day = this.date();
return Math.ceil((day - dayOfWeek - 1) / 7) + ((dayOfWeek >= weekStart) ? 1 : 0);
},
isLeapYear() {
let v = this.isValid();
if(v!==true)return v;
return Utils.isLeapYear(this.year());
},
isThisYear() {
let v = this.isValid();
if(v!==true)return v;
return Utils.timestamp(this._date);
},
isBefore() {
let v = this.isValid();
if(v!==true)return v;
return Utils.timestamp(this._date);
},
isAfter() {
let v = this.isValid();
if(v!==true)return v;
return Utils.timestamp(this._date);
},
month(num) {
let v = this.isValid();
if(v!==true)return v;
let m = this;
if (num == undefined) {
return m._date.getMonth() + 1;
}
num = parseInt(num);
num = m._date.setMonth(num - 1);
return m;
},
add(num, type) {
let v = this.isValid();
if(v!==true)return v;
let m = this;
num = parseInt(num);
type = type || moment.DAY;
switch (type) {
case moment.DAY:
m.time(m.time() + (num * _DAYS));
break;
case moment.MONTH:
let month_add = m.month() + num;
let year_add = Math.floor(month_add / 12);
month_add = month_add % 12;
m.add(year_add, moment.YEAR);
m.month(month_add);
break;
case moment.YEAR:
m.year(m.year() + num);
break;
case moment.WEEK:
m.time(m.time() + (num * _WEEKS));
break;
case moment.HOUR:
m.time(m.time() + (num * _HOURS));
break;
case moment.MINUTE:
m.time(m.time() + (num * _MINUTES));
break;
case moment.SECOND:
m.time(m.time() + (num * _SECONDS));
break;
case moment.TIME:
m.time(m.time() + (num));
break;
}
return m;
},
endOf(type,set) {
let v = this.isValid();
if(v!==true)return v;
let m = this;
type = type || moment.DAY;
m.startOf(type,set);
m.add(1, type);
// if (moment.DAY == type||moment.WEEK == type) {
m.add(-1, moment.SECOND);
// } else {
// m.add(-1, moment.DAY);
// }
return m;
},
startOf(type,set) {
let v = this.isValid();
if(v!==true)return v;
let m = this;
type = type || moment.DAY;
switch (type) {
case moment.DAY:
m.milliseconds(0);
m.seconds(0);
m.minutes(0);
m.hours(0);
break;
case moment.MONTH:
m.date(1);
m.startOf(moment.DAY);
break;
case moment.WEEK:
m.startOf(moment.DAY);
set=set||moment.SUNDAY;
let startDay = set==moment.SUNDAY?0:1;
m.add(-m.day()+startDay,moment.DAY);
break;
case moment.YEAR:
m.month(1);
m.date(1);
m.startOf(moment.DAY);
break;
case moment.HOUR:
m.time(Math.floor((m.time()) / _HOURS) * _HOURS);
break;
}
return m;
},
isValid(){
return Utils.isDate(this._date)?true:"Invalid Date";
}
};
let momentPrototype__proto = _moment.prototype;
const methods = {
"year": "FullYear",
"day": "Day",
"date": "Date",
"hours": "Hours",
"milliseconds": "Milliseconds",
"seconds": "Seconds",
"minutes": "Minutes",
"time": "Time",
};
for (let unit in methods) {
momentPrototype__proto[unit] = Utils.makeGetSet(methods[unit]);
}
let moment = function(param) {
if(param instanceof _moment){
return param;
}else if (Utils.isObject(param)) {
//config
if (param.formatString && Utils.isObject(param.formatString)) {
Utils.extend(FORMAT_LIST, param.formatString);
}
if (param.now) {
_moment.prototype.timeDelay = moment(param.now).time() - moment().time();
}
} else {
return new _moment(param);
}
};
moment.config = function(param) {
if (param.formatString && Utils.isObject(param.formatString)) {
Utils.extend(FORMAT_LIST, param.formatString);
}
if (param.now) {
_moment.prototype.timeDelay = moment(param.now).time() - moment().time();
}
};
moment.SECOND = 2;
moment.MINUTE = 3;
moment.HOUR = 4;
moment.DAY = 5;
moment.MONTH = 6;
moment.YEAR = 7;
moment.WEEK = 8;
moment.TIME = 9;
moment.MONDAY = 1;
moment.SUNDAY = 2;
return moment;
}));

View File

@@ -0,0 +1,64 @@
var moment = require('./build/moment');
// var moment = require('./moment');
// moment.config({
// formatString: {
// "r": "YYYY"
// },
// now:"2016-07-11T18:42:34.453+08:00"
// });
// console.log(moment());
console.log(moment("2016-07-03").endOf(moment.MONTH).format("ff"))
// console.log(moment('2016-07-23').distance(moment(),moment.DAY))
// console.log(moment().toString());
// console.log(moment().format());
// console.log(moment().format("l"));
// console.log(moment().format("ll"));
// console.log(moment().format("k"));
// console.log(moment().format("kk"));
// console.log(moment().format("kkk"));
// console.log(moment().format("f"));
// console.log(moment().format("ff"));
// console.log(moment().format("fff"));
// console.log(moment().format("n"));
// console.log(moment().format("nn"));
// console.log(moment().format("r"));
// console.log(moment(1459235037).format());
// console.log(moment(1459235037000).format());
// console.log(moment([2016,11,23,4,3,5]).format("f"));
// console.log(moment([2015,12,3]).format());
// console.log(moment("2014-12-03").format("f"));
// console.log(moment("2014-12-03 12:34").format("f"));
// console.log(moment("2014-12-03 12:34:34").format("f"));
// console.log(moment("20141203").format("f"));
// console.log(moment("201412031223").format("f"));
// console.log(moment().year(2018).format());
// console.log(moment("2012-10-03 23:59:59").month(8).month());
// console.log(moment().isLeapYear());
// console.log(moment("2012-10-03 23:59:59").add(1,moment.DAY).format("ff"));
// console.log(moment("2012-10-03 23:59:59").add(-1,moment.DAY).format("ff"));
// console.log(moment("2012-10-03 23:59:59").add(26,moment.MONTH).format("ff"));
// console.log(moment("2012-10-03 23:59:59").add(-1,moment.YEAR).format("ff"));
// console.log(moment("2012-10-03 23:59:59").add(1,moment.MINUTE).format("ff"));
// console.log(moment().startOf(moment.DAY).format("ff"));
// console.log(moment("2012-10-03 23:59:59").startOf(moment.YEAR).format("ff"));
// console.log(moment("2012-10-03 23:59:59").startOf(moment.MONTH).format("ff"));
// console.log(moment().startOf(moment.HOUR).format("ff"));
// console.log(moment("2012-10-03 23:59:59").endOf(moment.YEAR).format("fff"));
// console.log(moment("2012-10-03 23:59:59").endOf(moment.MONTH).format("fff"));
// console.log(moment("2016-07-22 ").distance(moment.NOW,moment.DAY));
// console.log(moment())
// console.log(moment('2016-07-22'))
// console.log(moment("2012-10-03 23:59:59").startOf(moment.WEEK,moment.MONDAY).format("fff"))
// console.log(moment("2012-10-03 23:59:59").endOf(moment.WEEK,moment.MONDAY).format("fff"))
// console.log(moment().getWeekOfMonth(moment.MONDAY))
// console.log(moment().format("f"))