Jump to content

Recommended Posts

Не пойму где ошибка

 

 

{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 почему?

Edited by shooroop
Link to post
Share on other sites

выводит 30  хотя должно 29 почему?

 

Потому что вы используете формат даты, где 86400 секунд разницы это не 1 день, а 02 день месяца

Link to post
Share on other sites

Потому что вы используете формат даты, где 86400 секунд разницы это не 1 день, а 02 день месяца

 

 

Честно не понимаю 86400 - это сутки как и 24*60*60.

 

Можешь указать на ошибку?

Link to post
Share on other sites

Честно не понимаю 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}
Edited by chocolate_moles
Link to post
Share on other sites

 

 

В вашем примере получилось 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

Link to post
Share on other sites

а не вычесть  - 86400 ?  тогда будет 29

 

В текущем примере можно и вычесть, а если вторая дата будет +34, то при вычитании у вас получится 2, а не ожидаемые 33.

 

Вам для чего все эти вычисления то?

Link to post
Share on other sites

В текущем примере можно и вычесть, а если вторая дата будет +34, то при вычитании у вас получится 2, а не ожидаемые 33.

 

Вам для чего все эти вычисления то?

 

 

Вывод отображения числа сколько времени осталось отображать товар на сайте. Максимальное количество дней жизни товара 30. 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...