当用户注册我的网站时,他们以这种格式输入他们的每周可用性:
周一 1300 至 1400 周一 2100 至 2200
周二 1200 至 1300 周二 1400 至 1500
等等。
他们还根据选择菜单(例如 America/Los_Angeles)指示他们的时区。
我想要发生的是根据访问设置了不同时区的个人资料的用户的时区来调整这些时间。什么是最好的解决方案?
将他们的可用性存储为 EPOCH 的秒数,然后根据用户的时区将其转换为适当的时间。
将 UTC 和所选时区之间的差异存储在字段值中
<option value="3">UTC+3 timezone</option>
<option value="-5">UTC-5 timezone</option>
然后将其添加或减少到小时的输出。如果这种差异提供负面结果或超过 24 小时 - 设置一周的下一天或前一天。
我认为你真的不需要 unixtime 这样的时间间隔。
我实际上最终这样做了:
<?php while ($ava = mysql_fetch_array($avail_action)) {
date_default_timezone_set($profile_owners_timezone);
$timestamp_from = strtotime($ava['time_from']);
$timestamp_to = strtotime($ava['time_to']);
date_default_timezone_set($_SESSION['timezone']);
$time_from = date("g:i A", $timestamp_from);
$time_to = date("g:i A", $timestamp_to); ?>
基本上我得到了他/她输入的配置文件“所有者”时区,将时区设置为该时区,然后将时区设置为“查看者”时区并将变量设置为该时区。
感谢大家的帮助!