php 的时间和时区

time返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。不受时区设置的影响。

date格式化一个本地时间。跟时区设置有关系。

<?php
$timezone = "Asia/Shanghai";
$currentTimezone = "UTC";
@date_default_timezone_set($timezone);
echo $date = date('Y-m-d H:i:s');
echo '<br/>';
echo  time();
echo '<br/>';
@date_default_timezone_set($currentTimezone);
echo date('Y-m-d H:i:s');
echo '<br/>';
echo time();
---------------------------------
2016-10-08 11:24:43
1475897083
2016-10-08 03:24:43
1475897083

strtotime受时区设置的影响,将日期时间描述解析为 Unix 时间戳。

<?php
$timezone = "Asia/Shanghai";
$currentTimezone = "UTC";
@date_default_timezone_set($timezone);
echo $date = date('Y-m-d H:i:s');
echo '<br/>';
echo time();
echo '<br/>';
@date_default_timezone_set($currentTimezone);
echo date('Y-m-d H:i:s');
echo '<br/>';
// 这个时间戳是不正确的,不符合实际的
echo $time = strtotime($date);
------------------------------
2016-10-08 11:22:06
1475896926
2016-10-08 03:22:06
1475925726

发表评论

电子邮件地址不会被公开。 必填项已用*标注