shooroop Опубликовано 9 апреля, 2020 Жалоба Поделиться Опубликовано 9 апреля, 2020 (изменено) Не пойму где ошибка {assign var="date1" value= $smarty.now+1*24*60*60} {assign var="date2" value= $smarty.now+30*24*60*60} {assign var="dateDiff" value=$date2 - $date1} {$dateDiff|date_format:'%d'} выводит 30 хотя должно 29 почему? Изменено 9 апреля, 2020 пользователем shooroop Цитата Ссылка на сообщение Поделиться на другие сайты
chocolate_moles Опубликовано 9 апреля, 2020 Жалоба Поделиться Опубликовано 9 апреля, 2020 выводит 30 хотя должно 29 почему? Потому что вы используете формат даты, где 86400 секунд разницы это не 1 день, а 02 день месяца Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 9 апреля, 2020 Автор Жалоба Поделиться Опубликовано 9 апреля, 2020 Потому что вы используете формат даты, где 86400 секунд разницы это не 1 день, а 02 день месяца Честно не понимаю 86400 - это сутки как и 24*60*60. Можешь указать на ошибку? Цитата Ссылка на сообщение Поделиться на другие сайты
chocolate_moles Опубликовано 9 апреля, 2020 Жалоба Поделиться Опубликовано 9 апреля, 2020 (изменено) Честно не понимаю 86400 - это сутки как и 24*60*60. Можешь указать на ошибку? В вашем примере получилось 2505600 секунд, что равняется 29 дням, но вы конвертируете его в день даты, которая является 30 января 1970 года, отсюда и число 30. Как вариант решения, результат нужно поделить на 24*60*60 {assign date1 $smarty.now + 1*24*60*60} {assign date2 $smarty.now + 30*24*60*60} {assign var = "dateDiff" value = ($date2-$date1)/24/60/60} Изменено 9 апреля, 2020 пользователем chocolate_moles Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 9 апреля, 2020 Автор Жалоба Поделиться Опубликовано 9 апреля, 2020 В вашем примере получилось 2505600 секунд, что равняется 29 дням, но вы конвертируете его в день даты, которая является 30 января 1970 года, отсюда и число 30. Как вариант решения, результат нужно поделить на 24*60*60 {assign date1 $smarty.now + 1*24*60*60} {assign date2 $smarty.now + 30*24*60*60} {assign var = "dateDiff" value = ($date2-$date1)/24/60/60} а не вычесть - 86400 ? тогда будет 29 Цитата Ссылка на сообщение Поделиться на другие сайты
chocolate_moles Опубликовано 10 апреля, 2020 Жалоба Поделиться Опубликовано 10 апреля, 2020 а не вычесть - 86400 ? тогда будет 29 В текущем примере можно и вычесть, а если вторая дата будет +34, то при вычитании у вас получится 2, а не ожидаемые 33. Вам для чего все эти вычисления то? Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 10 апреля, 2020 Автор Жалоба Поделиться Опубликовано 10 апреля, 2020 В текущем примере можно и вычесть, а если вторая дата будет +34, то при вычитании у вас получится 2, а не ожидаемые 33. Вам для чего все эти вычисления то? Вывод отображения числа сколько времени осталось отображать товар на сайте. Максимальное количество дней жизни товара 30. Цитата Ссылка на сообщение Поделиться на другие сайты
segment Опубликовано 11 апреля, 2020 Жалоба Поделиться Опубликовано 11 апреля, 2020 потому что дата начинается в 0:00:00:000То есть день еще не прошел Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.