Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу разобратся с датой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Exponat
Отправлено: 29 Августа, 2013 - 14:40:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $times = (time()+24*60*60);
  2. echo "$times";

выводит приблизительно такие цифры: 1377780595. Это дата зашифрованная?
PHP:
скопировать код в буфер обмена
  1. $date = date("d.m.y H:i:s", $val['date']);
  2. echo "$date";

Выводит в нормальном фармате дату и время. Но число календаря показывает на день вперед. Как мне исправить?
 
 Top
LIME
Отправлено: 29 Августа, 2013 - 14:43:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. $date = date("d.m.y H:i:s");
  2. echo "$date";

(Добавление)
Exponat сам ник выбирал или тебя так на форуме окрестили?))
 
 Top
Exponat
Отправлено: 29 Августа, 2013 - 14:48:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Но у меня скрипт такой....что именно $times = (time()+24*60*60); используется:
PHP:
скопировать код в буфер обмена
  1. /* Запись всех значений "По умолчанию" */
  2. function Default_Write($id)
  3. {
  4. $id = addslashes($id);
  5. if ($_GET['action']=="news_inf")
  6. {
  7. $zapros_title = mysql_query ("SELECT * FROM `news` WHERE `id`='".$_GET['id']."'");
  8. $result_title = mysql_fetch_assoc($zapros_title);
  9. }
  10. $result = mysql_query ("INSERT INTO `my_log` ( `page_id` , `all` , `today` , `date` , `zagolovok`) VALUES ('".$id."' , 1 , 1 , '".(time()+60*60*24)."', '".mysql_real_escape_string($result_title['title'])."');");
  11. return $result;
  12. }


PHP:
скопировать код в буфер обмена
  1. if (time()>=$tmp['date']) // если сутки с момента записи прошли
  2. {
  3.     UpdateTime($unical_page_id_gid, (time()+60*60*24)); // обновим дату
  4.     UpdateCounders($unical_page_id_gid, $all, 1); // обновим счетчики
  5.         UpdateToday($today);
  6.     define("Today_and_all_counter", "<img src='image/view.png' alt=''/>");
  7. }
  8. else // если еще нет
  9. {
  10.     /* обновим счетчики */
  11.     UpdateCounders($unical_page_id_gid, $all, $today);
  12. }
  13. /* устанавливаем константу с текущими значениями счетчиков */
  14. define("Today_and_all_counter", "<span class='viewimg'> $all</span>");
  15. }


Это фрагменты кода счетчика для просмотра каждой страницы. Мучаюсь с неверной датой (число ставит на день вперед). А теперь оно обнуляет столбец today с новой каждой минутой присваивая ему 0. Тоесть за сутки оно не сохраняет...
 
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2013 - 14:48:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Exponat пишет:
Это дата зашифрованная?

В описании time() всё лаконично сказано.

Exponat пишет:
Но число календаря показывает на день вперед. Как мне исправить?

Очевидно, не прибавлять сутки времени.


-----
PostgreSQL DBA
 
 Top
teddy
Отправлено: 29 Августа, 2013 - 14:51:59
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Exponat пишет:
Это дата зашифрованная?

Да, ответ можно найти в глубинах одной из пирамид Египта. Ходят слухи, что некий отважный рыцарь по имени Manual однажды пробрался в эту пирамиду и узнал ответ на этот вопрос. Изучив оставшиеся манускрипты я понял, что функция time() Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) до текущего времени.

Соответственно можно это использовать и форматировать вывод при помощи функции date();

PHP:
скопировать код в буфер обмена
  1. $time = time();
  2. echo date("d-m-Y H:i:s", $time);
  3.  

(Отредактировано автором: 29 Августа, 2013 - 14:53:26)

 
 Top
Exponat
Отправлено: 29 Августа, 2013 - 14:54:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Не прибавлять сутки времени? Не понял... Мне нужна дата и время чтоб код знал если сутки прошли - обновить время для полей и счетчик в столбце today поставить 1.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2013 - 14:56:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




teddy, Браво

Exponat пишет:
Не прибавлять сутки времени?

В одном дне (обычно) 24 часа, 24*60 минут или 24*60*60 секунд. Не прибавляйте лишние сутки - и их не будет.


-----
PostgreSQL DBA
 
 Top
Exponat
Отправлено: 29 Августа, 2013 - 14:58:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Спасибо за помощь. Буду пробовать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB