121 lines
3.7 KiB
JavaScript
121 lines
3.7 KiB
JavaScript
define(function (require, exports, module) {
|
|
exports.trimToDay = function (d) {
|
|
d = d || new Date();
|
|
if (!(d instanceof Date)) {
|
|
d = new Date(d + '');
|
|
}
|
|
|
|
var x = new Date();
|
|
x.setTime(d.getTime() - d.getTime() % (1000 * 3600 * 24));
|
|
return x;
|
|
};
|
|
//exports.addDays = function (date, days) {
|
|
// var x = new Date();
|
|
// x.setTime(date.getTime() - date.getTime() % (1000 * 3600 * 24) + 1000 * 3600 * 24 * days);
|
|
// return x;
|
|
//};
|
|
exports.addDays = function (date, offset) {
|
|
date = exports.toDate(date);
|
|
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + offset);
|
|
};
|
|
|
|
exports.toDate = function (date) {
|
|
return date instanceof Date ? date : new Date(Date.parse(date));
|
|
};
|
|
exports.formatDate = function (date, format) {
|
|
/// <summary>格式化指定日期</summary>
|
|
/// <param name="format" type="String">格式化字符串</param>
|
|
date = exports.toDate(date);
|
|
|
|
format = format || "yyyy-MM-dd";
|
|
var o = {
|
|
"M+": date.getMonth() + 1, //month
|
|
"d+": date.getDate(), //day
|
|
"h+": date.getHours(), //hour
|
|
"m+": date.getMinutes(), //minute
|
|
"s+": date.getSeconds(), //second
|
|
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
|
|
"S": date.getMilliseconds() //millisecond
|
|
};
|
|
|
|
if (/(y+)/i.test(format)) {
|
|
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
}
|
|
|
|
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;
|
|
};
|
|
exports.formatSellDate = function (date) {
|
|
date = exports.toDate(date);
|
|
var today = exports.addDays(new Date(), 0);
|
|
|
|
var offset = Math.round((date - today) / 1000 / 60);
|
|
var hour = Math.round(offset / 60);
|
|
var minute = offset % 60;
|
|
|
|
if (hour < 24) return "今天" + hour + "点" + (minute ? minute + "分" : "");
|
|
else if (hour < 72) {
|
|
return ["明天", '后天', '大后天'][Math.floor(hour / 24) - 1] + (hour % 24) + "点" + (minute ? minute + "分" : "");
|
|
} else {
|
|
return exports.formatDate(date, "MM月dd日 hh:mm");
|
|
}
|
|
};
|
|
exports.getDaysDifference = function (date1, date2) {
|
|
/// <summary>获得date1到date2之间隔了多少天</summary>
|
|
|
|
var time1 = Math.floor(exports.toDate(date1).getTime() / 1000 / 60 / 60 / 24);
|
|
var time2 = Math.floor(exports.toDate(date2).getTime() / 1000 / 60 / 60 / 24);
|
|
|
|
return time2 - time1;
|
|
}
|
|
exports.format24hTo12h = function (str) {
|
|
/// <summary>将24小时制式时间转换为12小时制式</summary>
|
|
if (!str)
|
|
return '';
|
|
|
|
var args = str.split('/');
|
|
return args.map(function (t) {
|
|
if (!/0?(\d{1,2}):(\d{1,2})/.exec(t))
|
|
return "";
|
|
|
|
var h = parseInt(RegExp.$1, 10);
|
|
return h < 13 ? "上午" + h + ":" + RegExp.$2 : "下午" + (h - 12) + ":" + RegExp.$2;
|
|
|
|
});
|
|
};
|
|
exports.selectTrain = function (trainList, trainFilter, seatOrder, seatFirst, count) {
|
|
var seat, train;
|
|
if (seatFirst) {
|
|
//席别优先
|
|
seat = _.find(seatOrder, function (s) {
|
|
var treg = _.find(trainFilter, function (t) {
|
|
train = _.find(trainList, function (item) {
|
|
return t.test(item.code) && (_.findWhere(item.tickets, { code: s }) || {}).count >= count;
|
|
});
|
|
return typeof (train) != 'undefined';
|
|
});
|
|
return typeof (treg) != 'undefined';
|
|
});
|
|
} else {
|
|
//车次优先
|
|
_.find(trainFilter, function (t) {
|
|
seat = _.find(seatOrder, function (s) {
|
|
train = _.find(trainList, function (item) {
|
|
return t.test(item.code) && (_.findWhere(item.tickets, { code: s }) || {}).count >= count;
|
|
});
|
|
return typeof (train) != 'undefined';
|
|
});
|
|
return typeof (seat) != 'undefined';
|
|
});
|
|
}
|
|
|
|
if (seat)
|
|
return { seat: seat, train: train };
|
|
return null;
|
|
}
|
|
});
|