Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP时间/日期时区特定的东西_Php_Date_Time_Timezone_Unix Timestamp - Fatal编程技术网

PHP时间/日期时区特定的东西

PHP时间/日期时区特定的东西,php,date,time,timezone,unix-timestamp,Php,Date,Time,Timezone,Unix Timestamp,我对如何在获取用户时区的同时存储和访问各种事物的“时间点”有点好奇。使用time()会很酷作为存储/数据库数据 例如,如果我对博客进行更新,它会显示类似于26/01/2000 11:34的戳记,但是如果用户的时区比我的时区早一个小时,那么它会显示为26/01/2000 12:34,当然这是由他们的设置决定的。它还可以用于时间限制功能的倒计时。但是,我不知道如何以这种方式格式化unix时间戳。指导和帮助会很好:)。请阅读手册页面上的日期: 我相信此代码将满足您的要求: $time = time(

我对如何在获取用户时区的同时存储和访问各种事物的“时间点”有点好奇。使用
time()会很酷作为存储/数据库数据


例如,如果我对博客进行更新,它会显示类似于
26/01/2000 11:34
的戳记,但是如果用户的时区比我的时区早一个小时,那么它会显示为
26/01/2000 12:34
,当然这是由他们的设置决定的。它还可以用于时间限制功能的倒计时。但是,我不知道如何以这种方式格式化unix时间戳。指导和帮助会很好:)。

请阅读手册页面上的日期:

我相信此代码将满足您的要求:

$time = time();
$today = date("m j, Y, G:i a");
echo $today;
要更改时区,请加上或减去一小时。由于unix时间戳以秒为单位,因此60秒x 60分钟=1小时或360秒。所以加上360秒向前移动一小时,减去o向后移动一小时,如下所示:

$time = time()-360;

所有的post时间和服务器时间都应该是UTC开始。 从DB中检索发布时间,并以类似于下面的方式利用DateTime和DateTimeZone类

$fromDatabase = '2008-08-03 14:52:10';
$datetime = new DateTime($fromDatabase);
$timezone = new DateTimeZone('America/Los_Angeles');
$datetime->setTimeZone($timezone);
echo $datetime->format('Y-m-d H:i:s');

或者,在Linux上,如果使用MySQL,您可以加载时区表并调整MySQL查询中返回的日期时间。请参阅本页,了解如何从本页开始-

非常抱歉将我的答案转发到这里和其他时间问题

这将适用于格式为“YYYY-MM-DD HH:MM:SS”的任何时间(以及“new DateTime”函数可能使用的任何时间)

function changetimefromUTC($time, $timezone) {                   // SEND YOUR ORIGINAL TIME AND YOUR NEW TIMEZONE
    $changetime = new DateTime($time, new DateTimeZone('UTC'));  //YOUR ORIGINAL TIME GOES HERE
    $changetime->setTimezone(new DateTimeZone($timezone));       // THIS CHANGES TO THE NEW TIMEZONE
    return $changetime->format('m/d/y h:i a');    // THIS OUTPUTS THE NEW TIME IN WHATEVER FORMAT YOU WANT
}

支持的时区列表

据我所知,如果您想要更高的精度,可以使用microtime(true)返回秒,但作为浮点值,然后可以乘以1000表示毫秒:舍入(microtime(true)*1000)