123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- var DateUtils = {
- /**
- * 扩展Date 对象格式化方法
- */
- expandDate : function() {
- Date.prototype.format = function(fmt)
- { //author: meizz
- var o = {
- "M+" : this.getMonth()+1, //月份
- "d+" : this.getDate(), //日
- "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时
- "H+" : this.getHours(), //小时
- "m+" : this.getMinutes(), //分
- "s+" : this.getSeconds(), //秒
- "q+" : Math.floor((this.getMonth()+3)/3), //季度
- "S" : 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;
- }
- },
- /**
- * 获取具体年龄
- * @param {} beginStr
- * @param {} endStr
- * @return {}
- */
- getAgeInfo: function (beginStr, endStr) {
- var reg = new RegExp(/^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})(\s)(\d{1,2})(:)(\d{1,2})(:{0,1})(\d{0,2})$/);
- var beginArr = beginStr.match(reg);
- var endArr = endStr.match(reg);
-
- var days = 0;
- var month = 0;
- var year = 0;
-
- days = endArr[5] - beginArr[5];
- if (days < 0) {
- month = -1;
- days = 30 + days;
- }
-
- month = month + (endArr[3] - beginArr[3]);
- if (month < 0) {
- year = -1;
- month = 12 + month;
- }
-
- year = year + (endArr[1] - beginArr[1]);
-
- var yearString = year > 0 ? year + "岁" : "";
- var mnthString = month > 0 ? month + "月" : "";
- var dayString = days > 0 ? days + "天" : "";
-
- /*
- * 1 如果岁 大于等于1 那么年龄取 几岁 2 如果 岁等于0 但是月大于1 那么如果天等于0天小于3天 取小时 例如出生2天 就取 48小时
- */
- var result = "";
- if (year >= 1) {
- result = yearString + mnthString;
- } else {
- if (month >= 1) {
- result = days > 0 ? mnthString + dayString : mnthString;
- } else {
- var begDate = new Date(beginArr[1], beginArr[3] - 1, beginArr[5],
- beginArr[7], beginArr[9], beginArr[11]);
- var endDate = new Date(endArr[1], endArr[3] - 1, endArr[5],
- endArr[7], endArr[9], endArr[11]);
-
- var between = (endDate.getTime() - begDate.getTime()) / 1000;
- days = Math.floor(between / (24 * 3600));
- var hours = Math.floor(between / 3600 - (days * 24));
- var dayString = days > 0 ? days + "天" : "";
- result = days >= 3 ? dayString : days * 24 + hours + "小时";
- }
- }
-
- return result;
- },
- /**
- * 获取年龄,不满一天算天
- * @param {} birthday
- * @param {} today
- * @return {}
- */
- getAge :function(birthday,today) {
- var reg = new RegExp(/^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/);
- var beginArr = birthday.match(reg);
- var endArr = today.match(reg);
-
- var days = 0;
- var month = 0;
- var year = 0;
-
- days = endArr[5] - beginArr[5];
- if (days < 0) {
- month = -1;
- days = 30 + days;
- }
-
- month = month + (endArr[3] - beginArr[3]);
- if (month < 0) {
- year = -1;
- month = 12 + month;
- }
-
- year = year + (endArr[1] - beginArr[1]);
-
- var yearString = year > 0 ? year + "岁" : "";
- var mnthString = month > 0 ? month + "月" : "";
- var dayString = days > 0 ? days + "天" : "1天";
-
- /*
- * 1 如果岁 大于等于1 那么年龄取 几岁 2 如果 岁等于0 但是月大于1 name取几月 3 如果不足月, 则取天数 4 不满一天算一天
- */
- var result = "";
- if (year >= 1) {
- result = yearString + mnthString + dayString;
- } else {
- if (month >= 1) {
- result = days > 0 ? mnthString + dayString : mnthString;
- } else {
- result = dayString;
- }
- }
- return result;
- },
- /**
- * 获取月龄
- * @param {} birthday
- * @param {} today
- * @return {}
- */
- getMonthage :function(birthday,today) {
- var reg = new RegExp(/^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/);
- var beginArr = birthday.match(reg);
- var endArr = today.match(reg);
-
- var days = 0;
- var month = 0;
- var year = 0;
-
- days = endArr[5] - beginArr[5];
- if (days < 0) {
- month = -1;
- days = 30 + days;
- }
-
- month = month + (endArr[3] - beginArr[3]);
- if (month < 0) {
- year = -1;
- month = 12 + month;
- }
-
- year = year + (endArr[1] - beginArr[1]);
-
- var result = "";
- if (year >= 1) {
- result = (year * 12 + month + 1) + "个月";
- } else {
- if (month >= 1) {
- result = (month + 1) + "个月";
- } else {
- result = "1个月";
- }
- }
- return result;
- }
- }
|