stringtotime из отметки времени Unix - PullRequest
0 голосов
/ 30 ноября 2011

Я делаю следующее в своем 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";

Это мой вывод, и только КОНЕЦНАЯ ДАТА показывает то, что я ожидал.

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 часа.Не знаете, как я так все испортил?

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Вы подаете strtotime() в два раза больше.Один раз в строке 4:

strtotime($current_date_num)

удалите это, и вызов strtotime() в строке 7.

0 голосов
/ 30 ноября 2011

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
...