存在的问题
调用方式过于繁琐,部分函数需要实例化后才能调用,这个与便利的初衷不符合,所以做出如下调整。
tinydate.js v0.2
Date.prototype.format = function (fmt) { ???var o = { ???????"M+": this.getMonth() + 1, ????????????????//月份 ????????"d+": this.getDate(), ???????????????????//日 ????????"H+": this.getHours(), ??????????????????//小时 ????????"m+": this.getMinutes(), ????????????????//分 ????????"s+": this.getSeconds(), ????????????????//秒 ????????"q+": Math.floor((this.getMonth() + 3) / 3), //季度 ????????"f+": this.getMilliseconds() ????????????//毫秒 ????}; ???if (/(y+)/.test(fmt)) { ???????fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); ???} ???for (var k in o) { ???????if (new RegExp("(" + k + ")").test(fmt)) { ???????????fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); ???????} ???} ???return fmt;}//当前完整时间Date.$nowDate = new Date().format("yyyy-MM-dd HH:mm:ss.ffff");//获取自定义格式的当前时间Date.$now = function (fmt) { ???return new Date().format(fmt);}//计算时间差Date.diff = function (sDate, eDate) { ???if (eDate == undefined || eDate == null) ???????eDate = new Date(); ???var stime = sDate.getTime(); ???var etime = eDate.getTime(); ???var diffTime = etime - stime; ???var timeSpan = new TimeSpan(diffTime); ???return timeSpan;}//添加年Date.prototype.addYear = function (number) { ???this.setFullYear(this.getFullYear() + number);}//添加月Date.prototype.addMonth = function (number){ ???this.setMonth(this.getMonth()+number);}//添加日Date.prototype.addDate = function (number){ ???this.setDate(this.getDate()+number);}//添加小时Date.prototype.addHours = function (number){ ???this.setHours(this.getHours()+number);}//添加分Date.prototype.addMinutes = function (number){ ???this.setMinutes(this.getMinutes()+number);}//添加秒Date.prototype.addSeconds = function (number){ ???this.setSeconds(this.getSeconds()+number);}//添加毫秒Date.prototype.addMilliseconds = function (number){ ???this.setMilliseconds(this.getMilliseconds()+number);}//获得一年中第一天的日期Date.prototype.getTheFirstDateOfTheYear = function (date) { ???var year, month=0, day=1; ???if (date == undefined || date == null) { ???????year = this.getFullYear(); ???} ???else { ???????year = date.getFullYear(); ???} ???return new Date(year, month, day);}//获得一年中最后一天的日期Date.prototype.getTheLastDateOfTheYear = function (date) { ???var year, month = 11, day = 31; ???if (date == undefined || date == null) { ???????year = this.getFullYear(); ???} ???else { ???????year = date.getFullYear(); ???} ???return new Date(year, month, day);}//格式化当前日期 为 时限对象Date.prototype.timeSpan = function () { ???return new TimeSpan(this);}//时限对象function TimeSpan() { ???var o = new Object(); ???o.year = 0;//年 ???o.month = 0;//月 ???o.day = 0;//日 ???o.hours = 0;//时 ???o.minutes = 0;//分 ???o.seconds = 0;//秒 ???o.milliseconds = 0;//毫秒 ???o.totalYear = 0.00;//从时间原点的年 ???o.totalMonth = 0.00;//从时间原点到现在的月 ???o.totalDay = 0.00;//从时间原点到现在的天 ???o.totalHours = 0.00;//从时间原点到现在的小时 ???o.totalMinutes = 0.00;//从时间原点到现在的分 ???o.totalSeconds = 0.00;//从时间原点到现在的秒 ???o.totalMilliseconds = 0.00;//从时间原点到现在的毫秒 ???//初始化对象 ???o.init = function (timestamp) { ???????var odate = new Date(timestamp); ???????o.year = odate.getFullYear(); ???????o.month = odate.getMonth() + 1; ???????o.day = odate.getDate(); ???????o.hours = odate.getHours(); ???????o.minutes = odate.getMinutes(); ???????o.seconds = odate.getSeconds(); ???????o.milliseconds = odate.getMilliseconds(); ???????o.totalMilliseconds = timestamp; ???????o.totalSeconds = (timestamp / 1000).toFixed(2); ???????o.totalMinutes = (timestamp / 1000 / 60).toFixed(2); ???????o.totalHours = (timestamp / 1000 / 60 / 60).toFixed(2); ???????o.totalDay = (timestamp / 1000 / 60 / 60 / 24).toFixed(2); ???????o.totalMonth = o.year * 12; ???????o.totalYear = o.year; ???} ???//无参则返回空对象 ???if (arguments.length == 0) { ???} ???else if (typeof (arguments[0]) === "string") { ???????o.init(new Date(arguments[0])); ???} ???else if (typeof (arguments[0]) === "number") { ???????o.init(arguments[0]); ???} else if (typeof(arguments[0]) === "object") { ???????o.init(arguments[0]); ???} ???return o;}
tinydate.js[v0.2] 优化了调用方式
原文地址:https://www.cnblogs.com/nozer1993/p/9184328.html