1.
PHP里怎么将2个字符串时间相减得到秒数?
$a = '2010-02-05 16:08:20';
$b = '2010-02-05 16:09:20';
b比a大1分钟也就是60秒,怎么相减得到60
把这个转化为具体的时间戳,用strtotime
strtotime($b)-strtotime($a)=60
得到秒数,然后就可以减了
2.
$bbb= "08:55 ";
$aaa= "08:50 " ;
echo ceil((strtotime($bbb)-strtotime($aaa))/60);
?>
3.
获得系统当前时间 :
$ctime=strtotime(date("Y-m-d H:i:s"));
$ctime-$logtime>180
4.
时间戳比较
比如,数据库里面的时间戳:1276650817 是2010年6月16日 9:13:37
目前本地时间是:1276674758 是2010年6月16日 15:52:38
我想让前台显示,此文章是XXX天XXX小时XXX分钟前发布
----------------
$time = 1276674758-1276650817;
$yourhour = (int)($time/(60*60));
$yourmin = (int)($time%(60*60)/60);
把两个时间戳相减,然后把得到的数据跟一天的秒数相除再取整,然后再把剩下的跟小时去相除取整,以此类推就是啦
5.
$date = "2004-12-02 08:18:12";
$date1 = "2004-12-08 09:18:12";
echo strtotime($date)."
";
echo strtotime($date1)."
";
$date2 = strtotime($date1)-strtotime($date);
echo $date2; ?>
这样得到的$date2就是相差的秒数,再除以3600就是小时了
6.
我从某页面上匹配了时间 $year = 2010 $month = 07 $day = 01 $hour = 17 $minute = 30 请问如何才能将今天的日期与上面这些值(年 月 日 时 分)相减,得出两个日期之间相差的天数、时间、分钟?然后print出来?
---------------------------------------------
UNIX时间戳
10.2 日期和时间
在开发Web程序时,时间起着重要的作用。不仅在数据存储和显示时需要日期和时间的管理,有一些功能模块的开发,时间通常是至关重要的。例如,网页静态化需要判断缓存时间、计算页面访问消耗的时间、在不同的时间段提供不同的功能等。PHP提供了强大的日期和时间处理功能,通过时间和日期函数库,能够得到PHP程序在运行时所在服务器中的日期和时间,并可以对它们进行检查和格式化,在不同格式之间进行转换。
10.2.1 UNIX时间戳
UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位的整数表示格林威治标准时间,例如,使用整数11230499325表示当前时间的时间戳。UNIX时间戳是从1970年1月1日零点(UTC/GMT的午夜)开始起到当前时间所经过的秒数。1970年1月1日零点作为所有日期计算的基础,这个日期通常称为UNIX纪元。
因为UNIX时间戳是一个32位的数字格式,所以特别适用于计算机处理,例如计算两个时间点之间相差的天数。另外,由于文化和地区的差异,存在不同的时间格式,以及时区的问题。所以UNIX时间戳也是根据一个时区进行标准化,设计的一种通用格式,并且这种格式可以很容易的转换为任何格式。
也因为UNIX时间戳是一个32位的整数表示的,所以在处理1902年以前或2038年以后的事件,将会遇到一些问题。另外,在Windows下,由于时间戳不能为负数,如果使用PHP中提供的时间戳函数处理1970年之前的日期,就会发生错误。要使用PHP代码具有可移植性,必须记住这一点。
1.将日期和时间转变成UNIX时间戳
在PHP中,如果需要将日期和时间转变成UNIX时间戳,可以调用mktime()函数。该函数的原型如下所示:
- int mktime ( [int hour [, int minute [, int
second [, int month [, int day [, int year ]]]]]] )该函数中所有参数都是可选的,如果参数为空,默认将当前时间转变成UNIX时间戳。这样,和直接调用time()函数获取当前的UNIX时间戳功能相同。参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果只想转变日期,对具体的时间不在乎,可以将前三个转变时间的参数都设置为0。mktime()函数对于日期运算和验证非常有用,它可以自动校正越界的输入。如下所示:
- echo date("M-d-Y", mktime(0, 0, 0, 12, 36, 2007))."/n";
//日期超过31天,计算后输出Jan-05-2008- echo date("M-d-Y", mktime(0, 0, 0, 14, 1, 2008))."/n";
//月份超过12月,计算后输出Feb-01-2009- echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 2009))."/n";
//没有问题的转变,输出结果 Jan-01-2009- echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 99))."/n";
//会将99年转变为1999年, Jan-01-1999- ?>
2.日期的计算
在PHP中,计算两个日期之间相隔的长度,最简单的方法就是通过计算两个UNIX时间戳之差来获得。例如,在PHP脚本中接收来自HTML表单用户提交的出生日期,计算这个用户的年龄。如下所示:
- $year = 1981;
//从表单中接收用户提交的出生日期中的年份- $month = 11;
//从表单中接收用户提交的出生日期中的月份- $day = 05;
//从表单中接收用户提交的出生日期中的天- $birthday = mktime (0, 0, 0, $month, $day, $year);
//将出生日期转变为UNIX时间戳- $nowdate = time();
//调用time()函数获取当前时间的UNIX时间戳- $ageunix = $nowdate - $birthday;
//两个时间戳相减获取用户年龄的UNIX时间戳- $age = floor($ageunix / (60*60*24*365));
//将UNIX时间戳除以一年的秒数获取用户年龄- echo "年龄:$age";
//输出用户的年龄,根据计算得到结果27- ?>
在以上脚本中,调用mktime()函数将从用户出生日期转变为UNIX时间戳,再调用time()函数获取当前时间的UNIX时间戳。因为这个日期的格式都是使用整数表示的,所以可以将它们相减。又将计算后获取的UNIX时间戳除以一年的秒数,将UNIX时间戳转变为以年度量的单位。