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) { /// 格式化指定日期 /// 格式化字符串 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.floor((date - today) / 1000 / 60); var hour = Math.floor(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) { /// 获得date1到date2之间隔了多少天 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) { /// 将24小时制式时间转换为12小时制式 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; } $.fn.toBase64Data = function () { var arr = []; this.each(function () { if (!this.naturalHeight) return; var canvas = document.createElement("canvas"); var height = this.naturalHeight; var width = this.naturalWidth; canvas.width = width; canvas.height = height; var ctx = canvas.getContext("2d"); ctx.drawImage(this, 0, 0, width, height); var url = canvas.toDataURL(); delete canvas; arr.push({ type: "image", data: url }); }); return arr; }; });