我正在尝试从00:00到24:00获取一个包含时间增量列表的选择框。
时间增量是与显示时间相关的秒数的关联数组,如下所示:
1800 => 00:30
然后当有人选择日期时,我计划将日期(例如2016/9/16)转换为秒,然后将他们选择的时间添加到这些秒以获取其日期时间。
为此,我正在生成这样的时间增量。
public function getIntervals($start_time = '00:00', $end_time = '24:00', $increments = '30')
{
$today = strtotime(date('Y/m/d', time())); // seconds for 2016/9/16
$seconds_start = strtotime(date('Y/m/d', time()) . ' ' . $start_time) - $today;
$seconds_end = strtotime(date('Y/m/d', time()) . ' ' . $end_time) - $today;
while ($seconds_start < $seconds_end) {
$intervals[$seconds_start] = date("H:i", $seconds_start);
$seconds_start = strtotime('+' . $increments . ' minutes', $seconds_start);
}
return $intervals;
}
但是我的时间间隔是一小时。
如果有人选择'2016/9/17在 01:00 上午',早上01:00的秒数值为' 0 '。
如果我将' 0 '添加到strtoseconds('2016/9/17'),我将在 00:00 '获得'2016/9/17'
所以我在这里,一小时出去。我认为这是由于我的服务器时间设置为paris + 1hr,但我不知道如何修复它。
答案 0 :(得分:1)
我真的不记得在哪里,但你可以改变你的时区。通过PHP时区搜索,您可以从官方网站上找到包含所有可能国家/城市的列表。您只需要设置一个您需要的国家/城市的变量即可。我不知道您是否可以在PHP脚本中执行此操作,或者需要更改服务器中的配置文件。
答案 1 :(得分:1)
$timediff = 3600;
$paris_00_time = strtotime(date('Y-m-d '.'00:00'));
$paris_selected_time = $paris_00_time+1800;
$my_time = date('Y-m-d H:i:s',$paris_selected_time-$timediff);
print_r($my_time);
您可以声明$timediff=3600;
(1小时)
$paris_00_time = strtotime(date('Y-m-d '.'00:00'));
在某人选择日期(例如:[1800] => 00:30
)并提交后,您可以处理日期
$paris_selected_time = $paris_00_time+1800;
$my_time = date('Y-m-d H:i:s',$paris_selected_time-$timediff);
输出:2016-09-15 23:30:00