Forums / National / Russian / Тех. поддержка / Как выводить даты?

<<<12

Clever
#16 2012-12-17 18:40

Что-то я пооже перемудрил при обновлении...

у меня не прокатывает... зависает загрузка страницы

Macik
#17 2012-12-17 20:21

Сами по себе значения работают? Если просто в шаблон вставить {PHP.sys.now} и соответствующий шаблону {*_DATE_STAMP}?

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Clever
#18 2012-12-18 05:36

В чистом виде сейчас проверить не могу, пробовал вставлять по отдельности {PAGE_ROW_DATE_STAMP|cot_date('date_full', $this)}, {PHP.sys.now|cot_date('date_full', $this)} и {PAGE_ROW_DATE_STAMP|cot_date('time_medium', $this)}

вставку производил в news.tpl так как мне надо сравнивать время создания новости с текущей. На сайте уже выводится дата, но через ява скрипт.

 

сайт: Auto62rus.ru

 

Добавлено 13 часа спустя:

Проверил. {PHP.sys.now} осуществляет вывод, а вот {PAGE_ROW_DATE_STAMP|cot_date('date_full', $this)}, {PHP.sys.now|cot_date('date_full', $this)} и {PAGE_ROW_DATE_STAMP|cot_date('time_medium', $this)} приводят к зависанию

This post was edited by Clever (2012-12-18 18:26, 11 years ago)
Kort
#19 2012-12-19 05:56

Это ж Генуя?

SED.by - создание сайтов, разработка плагинов и тем для Котонти
Clever
#20 2012-12-19 08:29

Да, генуя. 25я...

Добавлено 1 дня спустя:

Сделал.

Так как простых путей нет, то пошел другим...

 

в news.php добавляем следующие строчки:

$nowDate = getdate($sys['now']);

и

"PAGE_ROW_TODAY"  => @date($cfg['formatyearmonthday'], mktime(0, 0, 0, $nowDate['mon'], $nowDate['mday'], $nowDate['year']) + $usr['timezone'] * 3600),

"PAGE_ROW_TIME"  => @date("H:i", $pag['page_date'] + $usr['timezone'] * 3600),

далее в news.tpl

условие

<!-- IF {PAGE_ROW_DATE} != {PAGE_ROW_TODAY} -->
        {PAGE_ROW_DATE} -
        <!-- ELSE -->
        Сегодня в {PAGE_ROW_TIME} -
        <!-- ENDIF -->

результат на главной Auto62rus.ru

 

Спасибо за подсказки и советы Alex300, ошибки в коде и неоптимальность автора поста.

 

This post was edited by Clever (2012-12-20 15:40, 11 years ago)
Leshkens
#21 2013-05-03 09:36

Можно как-то логикой сделать, чтобы в определенном временном диапазоне (например с 1:00 ночи до 7:00 утра) отображалось одно, а в остальное другое?

Добавлено 59 минуты спустя:

Вот такой вот конструкцией решил вопрос. Может есть возможность упростить?

<!-- IF {PHP.sys.now|cot_date('G')} == 1 OR {PHP.sys.now|cot_date('G')} == 2 OR {PHP.sys.now|cot_date('G')} == 3 OR {PHP.sys.now|cot_date('G')} == 4 OR {PHP.sys.now|cot_date('G')} == 5 OR {PHP.sys.now|cot_date('G')} == 6 -->

 

This post was edited by Leshkens (2013-05-03 10:46, 10 years ago)
Alex300
#22 2013-05-03 15:31
<!-- {PHP.sys.now|cot_date('G')}  <  6 -->
   То что делать ночью
<!-- ELSE -->
   А тут днем
<!-- ENDIF -->
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Leshkens
#23 2013-05-03 15:52

Alex300, тьфу, а ведь точно. Что-то совсем замотался. Спасибо!

Kopusha
#24 2017-02-26 16:11
#36557 Macik:

Текущие время находится в переменной «now» масива $sys. Т.е. в шаблоне к ней можно обратиться как {PHP.sys.now}

Для спавнения используем условие в шаблоне (пример для Сиены «на вскидку» - не тестировал):

<!-- IF {PAGE_ROW_DATE_STAMP|cot_date('date_full', $this)} == {PHP.sys.now|cot_date('date_full', $this)} -->
          Сегодня в {PAGE_ROW_DATE_STAMP|cot_date('time_medium', $this)}
<!-- ELSE -->
          {PAGE_ROW_DATE_STAMP|cot_date('date_full', $this)}
<!-- ENDIF -->

 

Народ как сделать "вчера в 9-45" ? То есть 3 вариант - дата/вчера время/сегодня веремя. Спасибо!

Added 10 minutes later:

Ну и заодно тыкните носом как "считать" - то есть от текущего времени хочу отнять время публикации и получить не "сегодня в 22:30" а "7 часов назад".

 

 

Added 2 minutes later:

Почитатать то я могу теоритически через cot_date('G') а вот как вывести результат? 

Added 22 hours later:

Думал сделаю на свежую голову а не тут то было))))

<!-- IF {PHP.sys.now|cot_date('Y.m.d', $this)} == {PAGE_ROW_DATE_STAMP|cot_date('Y.m.d', $this)} -->
 Сегодня 
!-- ELSE IF {PHP.sys.now|cot_date('Y.m.d', $this)} == {PAGE_ROW_DATE_STAMP|cot_date('Y.m.d', $this)} + 1 -->
Вчера 
<!-- ELSE IF {PHP.sys.now|cot_date('Y.m.d', $this)} - {PAGE_ROW_DATE_STAMP|cot_date('Y.m.d', $this)} >= 2 -->
иное
<!-- ENDIF -->

Так не работает, или я с условиями ошибся или просто не умеет так считать (что вряд ли)

This post was edited by Kopusha (2017-02-27 14:49, 7 years ago)
Macik
#25 2017-02-28 18:31

Эту статью читали?

В вашем примере, во-первых, перед `ELSE` пропущена угловая скобка, во-вторых, и что главное,  вы складываете строку (из `cot_date`) и число. 
В общих чертах путь решения может быть таким — вам надо брать исходное значение (timestamp), вычислять из него  кол-во дней целых дней прошедших с начала «эпохи», и уже сравнивать эти величины.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kopusha
#26 2017-03-01 09:04

Тезка Спасибо, я по своей наивности полагал что это именно число а не текст и к нему можно сделать +1. Разобрался.

Added 39 seconds later:

У меня сбило то что верхней строке есть функция равно оказывается она сравнивает именно текстовые значение.

<<<12