繁体   English   中英

PHP:将此时区中的星期一转换为UTC

[英]PHP: Convert monday in this timezone to UTC

我正在构建一个应用程序,该应用程序将提取用户在“本周”(在其时区)中所做的所有条目。 我使用以下命令将所有输入时间作为UTC / GMT时间存储在数据库中:

gmdate('U')

当我需要在他们的时区获取“本周”时,就会出现我的问题。 在我考虑时区之前,我曾经...

$startWeek = strtotime('monday this week 00:00')
$endWeek = strtotime('sunday this week 00:00')

...并使用了一条搜索这两个变量之间的SQL语句。

问题是,这两个变量正在使用服务器时间,因此它使服务器在一周的开始和结束时间。

如果需要,我可以通过cookie访问用户的时区(即:澳大利亚/墨尔本)。

底线,我如何以时间戳格式在存储在Cookie中的时区中获取星期的开始和结束?

我认为date_default_timezone_set函数符合您的要求:

http://www.php.net/manual/en/function.date-default-timezone-set.php

您需要从用户那里获取时区,然后使用它来调用函数。 从时区开始,以下代码段应该起作用:

date_default_timezone_set('Melbourne/Australia');

如果您当前有一半的PHP安装,请这样做:

$usersTimezone = new DateTimeZone($timezone); // e.g. "Australia/Melbourne"
$time = new DateTime('monday this week 00:00', $usersTimezone);

$serversTimezone = new DateTimeZone('Servers Timezone'); // e.g. "UTC"
$time->setTimezone($serversTimezone);

$sqlTime = $time->format('Y-m-d H:i:s');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM