小程序 日期js

var Moment = function (date) {

var date;

if (date)

this.date = new Date(date);

else

this.date = new Date();

return this;

};

/**

* 對Date的擴展,將 Date 轉化爲指定格式的String

* 月(M)、日(d)、12小時(h)、24小時(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 個佔位符

* 年(y)可以用 1-4 個佔位符,毫秒(S)只能用 1 個佔位符(是 1-3 位的數字)

* eg:

* "yyyy-MM-dd hh:mm:ss.S" ==> 2006-07-02 08:09:04.423

* "yyyy-M-d h:m:s.S" ==> 2006-7-2 8:9:4.18

* "yyyy-MM-dd E HH:mm:ss" ==> 2009-03-10 二 20:09:04

* "yyyy-MM-dd EE hh:mm:ss" ==> 2009-03-10 週二 08:09:04

* "yyyy-MM-dd EEE hh:mm:ss" ==> 2009-03-10 星期二 08:09:04

*/

Moment.prototype.format = function (format) {

var date = this.date;

/*

var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正則表達式 匹配出生日期(簡單匹配)

r.exec('1985-10-15');

s1=RegExp.$1;s2=RegExp.$2;s3=RegExp.$3;//結果爲1985 10 15

*/

if (typeof date === 'string')

date = this.parse(date);

var o = {

"M+": date.getMonth() + 1, //月份

"(d+|D+)": date.getDate(), //日

"(h+|H+)": date.getHours(), //小時

"m+": date.getMinutes(), //分

"s+": date.getSeconds(), //秒

"q+": Math.floor((date.getMonth() + 3) / 3), //季度

"S": date.getMilliseconds() //毫秒

};

var week = {

"0": "/u65e5",

"1": "/u4e00",

"2": "/u4e8c",

"3": "/u4e09",

"4": "/u56db",

"5": "/u4e94",

"6": "/u516d"

};

if (/(y+|Y+)/.test(format))

format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));

if (/(E+)/.test(format))

format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[date.getDay() + ""]);

for (var k in o) {

if (new RegExp("(" + k + ")").test(format))

format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

}

return format;

}

 

Moment.prototype.parse = function () {

return this.date;

}

/**

* 計算兩個日期差差

* return day

*/

Moment.prototype.differ = function (date) {

var time1 = this.date.getTime();

if (typeof date === 'string')

date = new Date(date);

var time1 = this.date.getTime();

var time2 = date.getTime();

var differ = Math.ceil((time1 - time2) / (1000 * 3600 * 24));//除不盡時,向上取整

return differ;

}

 

Moment.prototype.add = function (num, optionType) {

var date = this.date;

if ('day' === optionType) {

date.setDate(date.getDate() + num);

}

if ('month' === optionType) {

date.setMonth(date.getMonth() + num);

}

if ('year' === optionType) {

date.setFullYear(date.getFullYear() + num);

}

this.date = date;

return this;

}

 

Moment.prototype.before = function (date) {

return this.date.getTime() < new Date(date).getTime()

}

Moment.prototype.after = function (date) {

return this.date.getTime() > date.getTime()

}

 

module.exports = function (date) {

return new Moment(date);

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章