Я пытаюсь проверить, сколько дней прошло с момента последнего входа пользователя в систему. Я получаю последний раз, когда он вошел в столбец таблицы mysql (datetime). так что я писал:Проверьте, сколько дней прошло с момента последнего обновления в PHP
$user_last_visit = $user_info['last_updated']; // 2013-08-08 00:00:00
$user_last_visit_str = strtotime($user_last_visit); // 1375912800
$today = strtotime(date('j-m-y')); // 1250114400
$diff = $today - $user_last_visit_str;
- Где
$user_info['last_updated']
имеет последний раз, когда он \ она посетила со значением 2013-08-08 00:00:00. - После StrToTime я
$user_last_visit_str
равна 1375912800 $today
имеет значение 9-08-13 и после того, как я получаю StrToTime 1250114400.
Некоторые причины $diff = $today - $user_last_visit_str;
отрицательна вместо того, чтобы получить положительное значение с 24*60*60*1000
(один день = 24*60*60*1000
мс).
Любые идеи?
вы можете объяснить о форматах времени и почему это не сработало для меня? – yehudahs
Я проверил дату и время, указанные в вашем вопросе, и это работает для меня: 'echo date_create() -> diff (date_create ('2013-08-07 00:00:00')) -> days;' печатает 2 для меня и распечатки 2013-08-08 1. Если вы используете другой формат, который не принимается этой функцией, вы можете указать формат, который вы используете, с [date_create_from_format] (http: //www.php.net/manual/en/datetime.createfromformat.php). Если вы хотите отформатировать интервал дат с дополнительной информацией, например, количеством лет, месяцев, дней, часов и т. Д., То вы можете использовать функцию date_format. – sgbj
ink.attendant.6 имеет пример вышеупомянутых функций в [его ответе] (http://stackoverflow.com/questions/18140766/check-how-many-days-were-passed-since-the-last-update -в-PHP/18140952 # 18140952). – sgbj