[英]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.