new Date().format("yyyy-MM-dd ")
var DateTime = function () {
var patterns = {
PATTERN_ERA: 'G',
PATTERN_YEAR: 'y',
PATTERN_MONTH: 'M',
PATTERN_DAY_OF_MONTH: 'd',
PATTERN_HOUR_OF_DAY1: 'k',
PATTERN_HOUR_OF_DAY0: 'H',
PATTERN_MINUTE: 'm',
PATTERN_SECOND: 's',
PATTERN_MILLISECOND: 'S',
PATTERN_DAY_OF_WEEK: 'E',
PATTERN_DAY_OF_YEAR: 'D',
PATTERN_DAY_OF_WEEK_IN_MONTH: 'F',
PATTERN_WEEK_OF_YEAR: 'w',
PATTERN_WEEK_OF_MONTH: 'W',
PATTERN_AM_PM: 'a',
PATTERN_HOUR1: 'h',
PATTERN_HOUR0: 'K',
PATTERN_ZONE_NAME: 'z',
PATTERN_ZONE_VALUE: 'Z',
PATTERN_WEEK_YEAR: 'Y',
PATTERN_ISO_DAY_OF_WEEK: 'u',
PATTERN_ISO_ZONE: 'X'
};
var week = {
'ch': {
"0": "\u65e5",
"1": "\u4e00",
"2": "\u4e8c",
"3": "\u4e09",
"4": "\u56db",
"5": "\u4e94",
"6": "\u516d"
},
'en': {
"0": "Sunday",
"1": "Monday",
"2": "Tuesday",
"3": "Wednesday",
"4": "Thursday",
"5": "Friday",
"6": "Saturday"
}
};
var handlerGetCurrentTime = function () {
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
return timeString;
};
var handlerCompareTime = function (time1, time2) {
if (Date.parse(time1.replace(/-/g, "/")) > Date.parse(time2.replace(/-/g, "/"))) {
return 1;
} else if (Date.parse(time1.replace(/-/g, "/")) < Date.parse(time2.replace(/-/g, "/"))) {
return -1;
} else if (Date.parse(time1.replace(/-/g, "/")) == Date.parse(time2.replace(/-/g, "/"))) {
return 0;
}
};
var handlerIsLeapYear = function (year) {
return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
};
var handlerGetDaysOfMonth = function (year, month) {
return [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
};
var handlerGetDaysOfMonth2 = function (year, month) {
month = parseInt(month) + 1;
var date = new Date(year, month, 0);
return date.getDate();
};
var handlerFromToday = function (days) {
var today = new Date();
today.setDate(today.getDate() + days);
var date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();
return date;
};
var handlerFormat = function (dateTime, pattern) {
var date = new Date(dateTime);
if (pattern == null || pattern.length == 0) {
return date.toLocaleString();
}
return pattern.replace(/([a-z])\1*/ig, function (matchStr, group1) {
var replacement = "";
switch (group1) {
case patterns.PATTERN_ERA:
break;
case patterns.PATTERN_WEEK_YEAR:
case patterns.PATTERN_YEAR:
replacement = date.getFullYear();
break;
case patterns.PATTERN_MONTH:
var month = date.getMonth() + 1;
replacement = (month < 10 && matchStr.length >= 2) ? "0" + month : month;
break;
case patterns.PATTERN_DAY_OF_MONTH:
var days = date.getDate();
replacement = (days < 10 && matchStr.length >= 2) ? "0" + days : days;
break;
case patterns.PATTERN_HOUR_OF_DAY1:
var hours24 = date.getHours();
replacement = hours24;
break;
case patterns.PATTERN_HOUR_OF_DAY0:
var hours24 = date.getHours();
replacement = (hours24 < 10 && matchStr.length >= 2) ? "0" + hours24 : hours24;
break;
case patterns.PATTERN_MINUTE:
var minutes = date.getMinutes();
replacement = (minutes < 10 && matchStr.length >= 2) ? "0" + minutes : minutes;
break;
case patterns.PATTERN_SECOND:
var seconds = date.getSeconds();
replacement = (seconds < 10 && matchStr.length >= 2) ? "0" + seconds : seconds;
break;
case patterns.PATTERN_MILLISECOND:
var milliSeconds = date.getMilliseconds();
replacement = milliSeconds;
break;
case patterns.PATTERN_DAY_OF_WEEK:
var day = date.getDay();
replacement = week['ch'][day];
break;
case patterns.PATTERN_DAY_OF_YEAR:
replacement = dayOfTheYear(date);
break;
case patterns.PATTERN_DAY_OF_WEEK_IN_MONTH:
var days = date.getDate();
replacement = Math.floor(days / 7);
break;
case patterns.PATTERN_WEEK_OF_YEAR:
var days = dayOfTheYear(date);
replacement = Math.ceil(days / 7);
break;
case patterns.PATTERN_WEEK_OF_MONTH:
var days = date.getDate();
replacement = Math.ceil(days / 7);
break;
case patterns.PATTERN_AM_PM:
var hours24 = date.getHours();
replacement = hours24 < 12 ? "\u4e0a\u5348" : "\u4e0b\u5348";
break;
case patterns.PATTERN_HOUR1:
var hours12 = date.getHours() % 12 || 12;
replacement = (hours12 < 10 && matchStr.length >= 2) ? "0" + hours12 : hours12;
break;
case patterns.PATTERN_HOUR0:
var hours12 = date.getHours() % 12;
replacement = hours12;
break;
case patterns.PATTERN_ZONE_NAME:
replacement = handlerGetZoneNameValue(date)['name'];
break;
case patterns.PATTERN_ZONE_VALUE:
replacement = handlerGetZoneNameValue(date)['value'];
break;
case patterns.PATTERN_ISO_DAY_OF_WEEK:
break;
case patterns.PATTERN_ISO_ZONE:
break;
default:
break;
}
return replacement;
});
};
var handlerDayOfTheYear = function (date) {
var obj = new Date(date);
var year = obj.getFullYear();
var month = obj.getMonth();
var days = obj.getDate();
var daysArr = [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
for (var i = 0; i < month; i++) {
days += daysArr[i];
}
return days;
};
var handlerGetZoneNameValue = function (dateObj) {
var date = new Date(dateObj);
date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
var arr = date.toString().match(/([A-Z]+)([-+]\d+:?\d+)/);
var obj = {
'name': arr[1],
'value': arr[2]
};
return obj;
};
return {
getCurrentTime: function () {
return handlerGetCurrentTime();
},
compareTime: function (time1, time2) {
return handlerCompareTime(time1, time2);
},
isLeapYear: function (year) {
return handlerIsLeapYear(year);
},
getDaysOfMonth: function (year, month) {
return handlerGetDaysOfMonth(year, month);
},
getDaysOfMonth2: function (year, month) {
return handlerGetDaysOfMonth2(year, month);
},
fromToday: function (days) {
return handlerFromToday(days);
},
format: function (dateTime, pattern) {
return handlerFormat(dateTime, pattern);
},
dayOfTheYear: function (date) {
return handlerDayOfTheYear(date);
},
getZoneNameValue: function (dateObj) {
return handlerGetZoneNameValue(dateObj);
}
}
}();