时间:2021-07-01 10:21:17 帮助过:15人阅读
时间对比函数 给他两个时间 对比年份是否一样 不一样输出相差的年份数 一样就对比月份 不一样就输出相差的月份数 一样就对比日 这样直到对比到秒数
https://github.com/jaywcjlove/date.js
http://segmentfault.com/a/1190000002500537
更专业的时间操作插件https://github.com/moment/moment 官网
格式化时间
js
new Date('2015-10-12 23:01:11').format("yyyy年MM月dd日 hh:mm:ss"); //⇒ "2015年10月12日 23:01:11" var testDate = new Date(); var testStr = testDate.format("yyyy年MM月dd日hh小时mm分ss秒"); //=> testStr = 2015年01月20日 19小时21分03秒
多少小时前、多少分钟前、多少秒前
js
new Date(1421313395359).ago(1411430400000) //=> "3个月前" new Date(1421313395359).ago('1987-04-03') //=> "28年前" new Date('2010-02-02').ago('1987-04-03') //=> "23年前"
时间转换,倒计时 '毫秒'.toHHMMSS(输出格式)
这个是基于 String 原型扩展出来的
js
var dt = (new Date().getTime()).toString() dt.toHHMMSS('hh时mm分ss秒') //=> 34时11分52秒
解决因客户端时区变更或者与服务器时间不一致,导 致显示服务器时间不准确
js
//服务端传入前端一般为秒,前端时间戳为毫秒所以要乘以1000 //8 为服务器时间时区 new Date(1434701732*1000).TZC(8)
如以下:
function compareDate(date1, date2){
var difArr, unitArr;
date1 = new Date(date1);
date2 = new Date(date2);
difArr = [date1.getFullYear() - date2.getFullYear(), date1.getMonth() -date2.getMonth(),date1.getDate() - date2.getDate(),date1.getHours() - date2.getHours(), date1.getMinutes() - date2.getMinutes(),date1.getSeconds() - date2.getSeconds()];
unitArr = ['年','月','日','时','分','秒']
for(var i = 0; i < 6;i++){
if(difArr[i] !== 0){
return Math.abs(difArr[i]) + unitArr[i];
}
}
}
测试结果:
比如2015-5-6 5:0:0和2015-5-7 8:0:0输出就是一天 天数不同 后面时间就不用判断
function compareTime($time1,$time2)
{
$timestamp1 = strtotime($time1);
$timestamp2 = strtotime($time2);
if(($year=(date('Y',$timestamp1)-date('Y',$timestamp2)))!=0)
{
return 'year:'.abs($year);
}
elseif(($month=(date('m',$timestamp1)-date('m',$timestamp2)))!=0)
{
return 'month:'.abs($month);
}elseif(($day=(date('d',$timestamp1)-date('d',$timestamp2)))!=0)
{
return 'day:'.abs($day);
}
}