function ConvertJSONDateToJSDateObject(jsondate) {
var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10));
return date;
}
var _toIsoDate = Date.prototype.toISOString;
//借用kendo.toString做出Unspecified Kind的ISO8601格式
//Date.prototype.toISOString = function () {
// return kendo.toString(this, "yyyy-MM-ddTHH:mm:ss");
//};
var newdate = null;
function getToDay() {
var now = new Date();
var nowYear = now.getFullYear();
var nowMonth = now.getMonth();
var nowDate = now.getDate();
newdate = new Date(nowYear, nowMonth, nowDate);
nowMonth = doHandleMonth(nowMonth + 1);
nowDate = doHandleMonth(nowDate);
return nowYear + "-" + nowMonth + "-" + nowDate;
}
function doHandleMonth(month) {
if (month.toString().length == 1) {
month = "0" + month;
}
return month;
}
function getYesterDay() {
var newtimems = newdate.getTime() - (24 * 60 * 60 * 1000);
var yesd = new Date(newtimems);
var yesYear = yesd.getFullYear();
var yesMonth = yesd.getMonth();
var yesDate = yesd.getDate();
yesMonth = doHandleMonth(yesMonth + 1);
yesDate = doHandleMonth(yesDate);
return yesYear + "-" + yesMonth + "-" + yesDate;
}
function getDate(jsondate) {
var date = ConvertJSONDateToJSDateObject(jsondate);
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
var day = date.getDate();
day = day < 10 ? "0" + day : day;
return year + "-" + month + "-" + day;
}
function getDateTime(jsondate) {
var date = ConvertJSONDateToJSDateObject(jsondate);
var year = date.getFullYear();
var month = date.getMonth() + 1;
//month = month < 10 ? "0" + month : month;
var day = date.getDate();
//day = day < 10 ? "0" + day : day;
var hh = date.getHours();
//hh = hh < 10 ? "0" + hh : hh;
var mm = date.getMinutes();
mm = mm < 10 ? "0" + mm : mm;
var ss = date.getSeconds();
ss = ss < 10 ? "0" + ss : ss;
return year + "/" + month + "/" + day + " " + hh + ":" + mm + ":" + ss;
}
function getFormatDateTime(jsondate, strformatdatetime) {
var date = ConvertJSONDateToJSDateObject(jsondate);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
mm = mm < 10 ? "0" + mm : mm;
var ss = date.getSeconds();
ss = ss < 10 ? "0" + ss : ss;
var newdatetime = strformatdatetime.replace("{yyyy}", year);
newdatetime = newdatetime.replace("{m}", month);
newdatetime = newdatetime.replace("{d}", day);
newdatetime = newdatetime.replace("{hh}", hh);
newdatetime = newdatetime.replace("{mm}", mm);
newdatetime = newdatetime.replace("{ss}", ss);
return newdatetime;
}
function getShortTime(jsondate) {
var date = ConvertJSONDateToJSDateObject(jsondate);
var hh = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
var mm = date.getMinutes() == 0 ? "00" : date.getMinutes();
return hh + ":" + mm ;
}
function getShortHour(jsondate) {
var date = ConvertJSONDateToJSDateObject(jsondate);
var hh = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
//var mm = date.getMinutes() == 0 ? "00" : date.getMinutes();
return hh + ":00";
}
//聚合算法
function dateDiff(date1, date2) {
var type1 = typeof date1, type2 = typeof date2;
if (type1 == 'string')
date1 = stringToTime(date1);
else if (date1.getTime)
date1 = date1.getTime();
if (type2 == 'string')
date2 = stringToTime(date2);
else if (date2.getTime)
date2 = date2.getTime();
return (date1 - date2) / (1000 * 60 * 60 * 24); //结果是小时
}
//字符串转成Time(dateDiff)所需方法
function stringToTime(string) {
var f = string.split(' ', 2);
var d = (f[0] ? f[0] : '').split('-', 3);
var t = (f[1] ? f[1] : '').split(':', 3);
return (new Date(
parseInt(d[0], 10) || null,
(parseInt(d[1], 10) || 1) - 1,
parseInt(d[2], 10) || null,
parseInt(t[0], 10) || null,
parseInt(t[1], 10) || null,
parseInt(t[2], 10) || null
)).getTime();
}
// 增加天
function AddDays(date, value) {
date.setDate(date.getDate() + value);
}
// 增加月
function AddMonths(date, value) {
date.setMonth(date.getMonth() + value);
}
// 增加年
function AddYears(date, value) {
date.setFullYear(date.getFullYear() + value);
}
// 是否为今天
function IsToday(date) {
return IsDateEquals(date, new Date());
}
// 是否为明天
function IsTmorm(date) {
var today = new Date();
AddDays(today, 1);
return IsDateEquals(date, today);
}
// 是否为当月
function IsThisMonth(date) {
return IsMonthEquals(date, new Date());
}
// 两个日期的年是否相等
function IsMonthEquals(date1, date2) {
return date1.getMonth() == date2.getMonth() && date1.getFullYear() == date2.getFullYear();
}
// 判断日期是否相等
function IsDateEquals(date1, date2) {
return date1.getDate() == date2.getDate() && IsMonthEquals(date1, date2);
}
// 返回某个日期对应的月份的天数
function GetMonthDayCount(date) {
switch (date.getMonth() + 1) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
}
//feb:
date = new Date(date);
var lastd = 28;
date.setDate(29);
while (date.getMonth() == 1) {
lastd++;
AddDays(date, 1);
}
return lastd;
}
// 返回两位数的年份
function GetHarfYear(date) {
var v = date.getYear();
if (v > 9) return v.toString();
return "0" + v;
}
// 返回月份(修正为两位数)
function GetFullMonth(date) {
var v = date.getMonth() + 1;
if (v > 9) return v.toString();
return "0" + v;
}
// 返回日 (修正为两位数)
function GetFullDate(date) {
var v = date.getDate();
if (v > 9) return v.toString();
return "0" + v;
}
// 返回时 (修正为两位数)
function GetFullHour(date) {
var v = date.getHours();
if (v > 9) return v.toString();
return "0" + v;
}
// 返回分 (修正为两位数)
function GetFullMinte(date) {
var v = date.getMinutes();
if (v > 9) return v.toString();
return "0" + v;
}
// 返回秒 (修正为两位数)
function GetFullSec(date) {
var v = date.getSeconds();
if (v > 9) return v.toString();
return "0" + v;
}
// 替换字符串
function Replace(str, from, to) {
return str.split(from).join(to);
}
// 格式化日期的表示
function FormatDate(date, str) {
str = Replace(str, "yyyy", date.getFullYear());
str = Replace(str, "MM", GetFullMonth(date));
str = Replace(str, "dd", GetFullDate(date));
str = Replace(str, "yy", GetHarfYear(date));
str = Replace(str, "M", date.getMonth() + 1);
str = Replace(str, "d", date.getDate());
return str;
}
// 统一日期格式
function ConvertDate(str) {
str = (str + "").replace(/^\s*/g, "").replace(/\s*$/g, ""); // 去除前后的空白
var d;
if (/^[0-9]{8}$/.test(str)) // 20040226 -> 2004-02-26
{
d = new Date(new Number(str.substr(0, 4)), new Number(str.substr(4, 2)) - 1, new Number(str.substr(6, 2)));
if (d.getTime()) return d;
}
d = new Date(str);
if (d.getTime()) return d;
d = new Date(Replace(str, "-", "/"));
if (d.getTime()) return d;
return null;
}
//获取星期
function GetWeek(date)
{
var week;
if (date.getDay() == 0) week = "日";
if (date.getDay() == 1) week = "一";
if (date.getDay() == 2) week = "二";
if (date.getDay() == 3) week = "三";
if (date.getDay() == 4) week = "四";
if (date.getDay() == 5) week = "五";
if (date.getDay() == 6) week = "六";
return week;
}