我在我的php脚本中执行以下操作,但我没有看到结果,但我会:
$current_date_num = strtotime("now");
echo $current_date_num ." BEFORE DATE HOUR<br/>";
$new_current = date('Y-m-d h:i:s', strtotime($current_date_num));
echo $new_current . " AFTER DATE<br/>";
$current_date_num = date('Y-m-d h:i:s', strtotime($current_date_num) - 60 * 60 * 6);
echo $current_date_num ." CURRENT<br/>";
$end_date = strtotime("+1 day");
$end_date = date("Y-m-d h:i:s",$end_date);
echo $end_date ." END DATE";
这是我的输出,只有END DATE显示了我的期望。
1322673564 BEFORE DATE HOUR
1969-12-31 07:00:00 AFTER DATE
1969-12-31 01:00:00 CURRENT
2011-12-01 12:19:24 END DATE
我认为会发生的是我获取Unix时间戳,然后使用strtotime获取当前时间,然后是当前时间减去6小时,最后是24小时后的时间。不知道我怎么搞糟这么糟糕?
答案 0 :(得分:3)
你申请strtotime()
两次太多了。第4行一次:
strtotime($current_date_num)
删除该内容,并在第7行中调用strtotime()
。
答案 1 :(得分:0)
strtotime需要人类可读的时间并将其解析为时间戳。由于您已经有时间戳,因此strptime调用会产生虚假数据。
$current_date_num = strtotime("now");
echo $current_date_num ." BEFORE DATE HOUR<br/>";
$new_current = date('Y-m-d h:i:s', $current_date_num);
echo $new_current . " AFTER DATE<br/>";
$current_date_num = date('Y-m-d h:i:s', $current_date_num - 60 * 60 * 6);
echo $current_date_num ." CURRENT<br/>";
$end_date = strtotime("+1 day");
$end_date = date("Y-m-d h:i:s",$end_date);
echo $end_date ." END DATE";
1322674409 BEFORE DATE HOUR
2011-11-30 06:33:29 AFTER DATE
2011-11-30 12:33:29 CURRENT
2011-12-01 06:33:29 END DATE