Rumah >pembangunan bahagian belakang >tutorial php >求大神写个时间对比函数
时间对比函数 给他两个时间 对比年份是否一样 不一样输出相差的年份数 一样就对比月份 不一样就输出相差的月份数 一样就对比日 这样直到对比到秒数
时间对比函数 给他两个时间 对比年份是否一样 不一样输出相差的年份数 一样就对比月份 不一样就输出相差的月份数 一样就对比日 这样直到对比到秒数
https://github.com/jaywcjlove/date.js
http://segmentfault.com/a/1190000002500537
更专业的时间操作插件https://github.com/moment/moment 官网
格式化时间
<code>js</code><code>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秒 </code>
多少小时前、多少分钟前、多少秒前
<code>js</code><code>new Date(1421313395359).ago(1411430400000) //=> "3个月前" new Date(1421313395359).ago('1987-04-03') //=> "28年前" new Date('2010-02-02').ago('1987-04-03') //=> "23年前" </code>
时间转换,倒计时 '毫秒'.toHHMMSS(输出格式)
这个是基于 String 原型扩展出来的
<code>js</code><code>var dt = (new Date().getTime()).toString() dt.toHHMMSS('hh时mm分ss秒') //=> 34时11分52秒 </code>
解决因客户端时区变更或者与服务器时间不一致,导 致显示服务器时间不准确
<code>js</code><code>//服务端传入前端一般为秒,前端时间戳为毫秒所以要乘以1000 //8 为服务器时间时区 new Date(1434701732*1000).TZC(8) </code>
如以下:
<code>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 </code>
测试结果:
比如2015-5-6 5:0:0和2015-5-7 8:0:0输出就是一天 天数不同 后面时间就不用判断
function compareTime($time1,$time2)
{
$timestamp1 = strtotime($time1);
$timestamp2 = strtotime($time2);
<code>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); } </code>
}