javascript时间相加相减格式化
2013-08-02 18:25
489 查看
//调用 date1-date2 var mytime = dateDiff('2011-12-29 10:20:56', '2011-12-30 14:13:25'); /** * 时间相减 * @param {type} date1 Y-m-d H:i:s格式的时间 * @param {type} date2 Y-m-d H:i:s格式的时间 * @returns 反回两个时间相差的秒数 */ function dateDiff(date1, date2) { var getTime1 = stringToTime(date1, 'getTime'); var getTime2 = stringToTime(date2, 'getTime'); var lstSec = Math.abs(getTime1 - getTime2) / 1000; var showtime = formatSeconds(lstSec); return showtime;//结果是秒 } //格式化秒数为时分秒 function formatSeconds(seconds) { if (seconds > 0) { var minutes = Math.floor(seconds / 60); seconds = seconds - minutes * 60; return formatMinutes(minutes) + (seconds > 0 ? seconds + "秒" : ""); } return seconds; } //格式化分钟为时分 function formatMinutes(minutes) { var day = parseInt(Math.floor(minutes / 1440)); var hour = day > 0 ? Math.floor((minutes - day * 1440) / 60) : Math.floor(minutes / 60); var minute = hour > 0 ? Math.floor(minutes - day * 1440 - hour * 60) : minutes; var time = ""; if (day > 0) time += day + "天"; if (hour > 0) time += hour + "小时"; if (minute > 0) time += minute + "分钟"; return time; }
/** * 格式化一个本地时间/日期(访php date函数) * @param format 时间格式 * @param timestamp 毫秒时间戳 * return 格式化后的时间 */ function date_format(format, timestamp) { format = (format) ? format : 'y-m-d H:i:s'; if (timestamp) { var date = new Date(timestamp); } else { var date = new Date(); } var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); var h = date.getHours(); var i = date.getMinutes(); var s = date.getSeconds(); var w = date.getDay(); m = m < 10 ? '0' + m : m; d = d < 10 ? '0' + d : d; h = h < 10 ? '0' + h : h; i = i < 10 ? '0' + i : i; s = s < 10 ? '0' + s : s; format = format.replace(/y/i, y);//年 format = format.replace(/m/i, m);//月 format = format.replace(/d/i, d);//天 format = format.replace(/h/i, h);//时 format = format.replace(/i/i, i);//分 format = format.replace(/s/i, s);//秒 format = format.replace(/w/i, w);//星期几 return format; } /** * 传入参数标准时间格式反回毫秒时间戳 参数为空直接反回当前毫秒时间戳 * @param {type} datetime 如: * 2015-08-06 15:16:17 * 2015-08-06 15:16:17.456 * @returns 毫秒时间戳 */ function millisecond(datetime) { if (!datetime) { return new Date().getTime(); } var time_arr = []; time_arr = datetime.match(/^(\d+).(\d+).(\d+).(\d+).(\d+).(\d+)$/); if (time_arr) { time_arr[7] = 0; } else { time_arr = datetime.match(/^(\d+).(\d+).(\d+).(\d+).(\d+).(\d+)\.(\d+)$/); } return new Date(time_arr[1], time_arr[2], time_arr[3], time_arr[4], time_arr[5], time_arr[6], time_arr[7]).getTime(); }
/** * 将标准时间格式(Y-m-d H:i:s)进行转换 * 将标准时间转换为毫秒时间戳 * @param string 时间(Y-m-d H:i:s) * @param timeType * timeType = getTime 反回string时间的毫秒时间戳 * timeType = getFullYear 反回string时间的年数字段 * timeType = getMonth 反回string时间的月数字段 * timeType = getDate 反回string时间的天数字段 * timeType = getHours 反回string时间的的小时字段 * timeType = getMinutes 反回string时间的的分钟字段 * timeType = getSeconds 反回string时间的秒字段 * @returns {Number|Date|stringToTime.mydate} */ function stringToTime(string, timeType) { var f = string.split(' ', 2); var d = (f[0] ? f[0] : '').split('-', 3); var t = (f[1] ? f[1] : '').split(':', 3); var mydate = (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 )); if (timeType == "getTime") { return mydate.getTime(); } else if (timeType == "getFullYear") { return mydate.getFullYear(); } else if (timeType == "getMonth") { return mydate.getMonth(); } else if (timeType == "getDate") { return mydate.getDate(); } else if (timeType == "getHours") { return mydate.getHours(); } else if (timeType == "getMinutes") { return mydate.getMinutes(); } else if (timeType == "getSeconds") { return mydate.getSeconds(); } else { return mydate; } }
/** * 时间相减 反回 时:分:秒 格式 * @param data1 时间 y-m-d H;i:s格式 * @param data2 时间 y-m-d H;i:s格式 * @returns 时:分:秒 */ function dateDiffHIS(date1, date2) { //获取两个时间的毫秒时间戳 var time1 = stringToTime(date1, 'getTime'); var time2 = stringToTime(date2, 'getTime'); //两个时间相差的秒数 var s = Math.abs(time1 - time2) / 1000; return HIS(s); }
/** * 将时间秒数转为 时:分:秒格式 * @param s 时长秒数 * @returns 时:分:秒 */ function HIS(s) { var ss = s % 60; var ii = Math.floor(s / 60 % 60); var hh = Math.floor(s / 3600); var ss = str_repeat('0', (2 - String(ss).length)) + String(ss); var ii = str_repeat('0', (2 - String(ii).length)) + String(ii); var hh = str_repeat('0', (2 - String(hh).length)) + String(hh); return hh + ':' + ii + ':' + ss; }
/** * 重复一个字符串 * @param {type} str 要重复的字符串 * @param {type} n 重复次数 * @returns {String} */ function str_repeat(str, n) { var ren = ''; for (var i = 0; i < n; i++) { ren += str; } return ren; }
/** *获取当前月份有几天 年月 */ function getMonthDay(y,m){ var m_day = [31,28,31,30,31,30,31,31,30,31,30,31]; if(y%4==0 && y%400!=0){ m_day[1] = 29; } return m_day[m-1]; }
/** *时间相加 y-m-d H:i:s 年月日时分秒 *反回 年月日时分秒 数组 */ function timeAdd(dv,add_y,add_m,add_d,add_h,add_i,add_s){ var dv2 = dv.split(/[-\s:]/); dv2[0]=parseInt(dv2[0])+add_y; dv2[1]=parseInt(dv2[1])+add_m; dv2[2]=parseInt(dv2[2])+add_d; dv2[3]=parseInt(dv2[3])+add_h; dv2[4]=parseInt(dv2[4])+add_i; dv2[5]=parseInt(dv2[5])+add_s; var date=new Date(dv2[0],dv2[1]-1,dv2[2],dv2[3],dv2[4],dv2[5]); var y = date.getFullYear(); var m = date.getMonth()+1; var d = date.getDate(); var h = date.getHours(); var i = date.getMinutes(); var s = date.getSeconds(); return [y,m,d,h,i,s]; } var date = timeAdd('2014-05-29 18:09:00',0,0,0,20,0,0); var prentdate = date[0]+'-'+date[1]+'-'+date[2]+' '+date[3]+':'+date[4]+':'+date[5]; alert(prentdate);
相关文章推荐
- javascript 时间日期处理相加相减
- javascript 时间格式化
- javascript格式化时间
- JavaScriptSerializer 时间格式化
- JavaScript时间戳与其格式化
- json时间数据,使用javascript格式化字符串
- 用JavaScript(js)对时间格式化
- JAVASCRIPT 中 日期时间相减的方法
- MFC中时间相加减,格式化操作
- 用JavaScript(js)对时间格式化
- 用JavaScript(js)对时间格式化
- 用JavaScript(js)对时间格式化
- Javascript格式化json返回的时间(/Date(1482747413000)/)
- javascript格式化时间(几秒钟前,几分钟前,几小时前,几天前...)
- javascript 格式化时间日期函数代码脚本之家修正版
- 全面兼容的javascript时间格式化函数(比较实用)
- javascript 时间格式化
- JavaScript 格式化时间 INT类型 转 字符串时间
- 用JavaScript(js)对时间格式化
- JavaScript将时间格式化为yyyy-MM-dd hh:mm:ss