Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сравнение дат
 
 автор: Ванек2010   (10.05.2010 в 22:27)   письмо автору
 
 

Из MSSQL вытаскиваю дату: $myrow['time'] - дата там такая: 25.05.2010 19:37:00
Мне нужно:
1. Занести в формат unixstamp.
2. Сравнить эту дату с сегодняшней.
3. Отнять $myrow['time'] от сегоднящней даты, и показать полученный результат в таком формате 11.05.2010 18:37:00(не в unixstamp)
Поиск юзал и учебник тоже, но так и не осилил, поэтому прошу помощи.

  Ответить  
 
 автор: Trianon   (10.05.2010 в 23:46)   письмо автору
 
   для: Ванек2010   (10.05.2010 в 22:27)
 

1. имеет смысл сперва преобразовать в восточный формат (который MySQL применяет)
Из него уже unix timestamp получается вызовом одной функции - strtotime

3. Отнимая один момент времени от другого Вы получаете в результате интервал времени.
Интервал времени в календарном виде 11.05.2010 18:37:00 выразить невозможно.

  Ответить  
 
 автор: Ванек2010   (11.05.2010 в 00:15)   письмо автору
 
   для: Trianon   (10.05.2010 в 23:46)
 

Спасибо, но можно по подробнее с 1 вопросом.
Как перевести в восточный формат и работа ф-ции strtotime (синтаксис ее)

  Ответить  
 
 автор: psychomc   (11.05.2010 в 01:20)   письмо автору
 
   для: Ванек2010   (11.05.2010 в 00:15)
 

http://www.php.net/manual/en/function.strtotime.php

  Ответить  
 
 автор: Ванек2010   (12.05.2010 в 00:13)   письмо автору
 
   для: psychomc   (11.05.2010 в 01:20)
 

Можете на примере показать, как занести $myrow44['time'] в функцию strtotime
Типо так:
$date = strtotime($myrow44['unblock_time']);
echo $date;

?

  Ответить  
 
 автор: Trianon   (12.05.2010 в 00:58)   письмо автору
 
   для: Ванек2010   (11.05.2010 в 00:15)
 

первый вопрос определяется поиском по разделу форума.
Второй - заглядыванием в мануал по функции.

  Ответить  
 
 автор: bab-nike   (12.05.2010 в 01:19)   письмо автору
 
   для: Ванек2010   (10.05.2010 в 22:27)
 

а если в базу записать в формате секунд? то есть использовать просто time(), и потом вычислить разницу и представить хоть в каком виде?

  Ответить  
 
 автор: Ванек2010   (12.05.2010 в 20:06)   письмо автору
 
   для: bab-nike   (12.05.2010 в 01:19)
 

Да я так и сделал спасибо.
Но у меня другой вопрос.
В базе дата такая: 05.12.2010 20:02:16
А мне надо ее вытащить и сделать вот такой: 12.05.2010 20:02:16
То есть поменять местами месяц и дни, как это сделать?
И еще вопрос, как сделать, чтобы не выводило названия месяцов.
Чтобы было 12.05.2010 20:02:16 а не 12 май 2010 20:02:16

  Ответить  
 
 автор: Ванек2010   (13.05.2010 в 23:53)   письмо автору
 
   для: Ванек2010   (12.05.2010 в 20:06)
 

Помогите епт народ

  Ответить  
 
 автор: eli   (14.05.2010 в 00:14)   письмо автору
 
   для: Ванек2010   (10.05.2010 в 22:27)
 

>1. Занести в формат unixstamp.
strtotime('25.05.2010 19:37:00');


>2. Сравнить эту дату с сегодняшней.
if(strtotime("now")>strtotime($myrow['time']))

>3. Отнять $myrow['time'] от сегоднящней даты, и показать полученный результат в таком формате 11.05.2010 18:37:00(не в unixstamp)
Не понял как вы хотите вычесть из одной даты другую. Точнее зачем это вам. Что получится если из 23 декабря 1987 вычесть 19 августа 1562?))
А вывод делается просто date('d.m.Y h:i:s','1273781559');

  Ответить  
 
 автор: Ванек2010   (14.05.2010 в 01:16)   письмо автору
 
   для: eli   (14.05.2010 в 00:14)
 

Блин ну что за херня сделал вот так:
$fff = date('d.m.Y h:i:s',$myrow44['stamptime_block']);
echo $fff;

Получил вот такое:
01.01.1970 03:00:00 

Изначально в $myrow44['stamptime_block'] было вот это значение 1273785091
Когда вот так
$fff = date('d.m.Y h:i:s','1273785091');
echo $fff;

Все отлично, а когда вставляю массив выносит 1970... ппц

  Ответить  
 
 автор: Trianon   (14.05.2010 в 02:54)   письмо автору
 
   для: Ванек2010   (14.05.2010 в 01:16)
 

Включите диагностику ошибок.
У Вас явно идет обращение к неопределенной переменной.
01.01.1970 03:00:00 - это показывает довольно явно, если Вы в Московском часовом поясе сервер держите.

PS. Да. И ругаться не стоит. На себя можно и про себя.

  Ответить  
 
 автор: Ванек2010   (14.05.2010 в 18:21)   письмо автору
 
   для: Trianon   (14.05.2010 в 02:54)
 

как ее включить?

  Ответить  
 
 автор: eli   (14.05.2010 в 20:56)   письмо автору
 
   для: Ванек2010   (14.05.2010 в 18:21)
 

error_reporting (E_ALL); - в скрипте
error_reporting = E_ALL - в php.ini
У Вас в массиве 100% не то значение, сделайте var_dump

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования