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]   

> Без описания
ViTYAi
Отправлено: 20 Ноября, 2009 - 06:05:56
Post Id


Новичок


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


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




Приветствую всех!

Подскажите, пожалуйста, как преобразовать дату в нужный мне формат?
Читаю дату из БД MS SQL и пытаюсь преобразовать в нужный фомат. Получаю следующее:
PHP:
скопировать код в буфер обмена
  1. echo date( 'Y-m-d H:i', $myrow2[0]);
  2. //Результат: 1970-01-01 00:00


Если использовать функцию преобразования строки в дату, то тоже не помогает:
PHP:
скопировать код в буфер обмена
  1. echo date( 'Y-m-d H:i', strtotime($myrow2[0]));
  2. //Результат: 1970-01-01 00:00


Если выводить просто дату, как есть, то:
PHP:
скопировать код в буфер обмена
  1. echo $myrow2[0];
  2. //Результат: 19 ноя 2009 0:30



И почему PHP по умолчанию выбрал именно такой ("19 ноя 2009 0:30") формат?
 
 Top
Djin_dj
Отправлено: 20 Ноября, 2009 - 08:19:50
Post Id



Частый гость


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


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




Проще всего написать свою функцию и просто и можно выводить как хочешь
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.         function Time_To_Show($value){
  4.                 $montharray = array('1' => 'Января','2' => 'Февраля','3' => 'Марта','4' => 'Апреля','5' => 'Мая','6' => 'Июня','7' => 'Июля','8' => 'Августа','9' => 'Сентября','10' => 'Октября','11' => 'Ноября','12' => 'Декабря');
  5.                 $time           = explode(' ',$value);
  6.                 $date = $time[0];
  7.                         $dateconvert = explode('-',$date);
  8.                         $year  = $dateconvert[0];
  9.                         $month = $montharray[($dateconvert[1])];
  10.                         $day   = $dateconvert[2];
  11.                 $time = $time[1];
  12.         return $day." ".$month." ".$year." ".$time;
  13.         }      
  14. ?>
  15.  

на а конвертация соответственно
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. echo Time_To_Show($time);//где $time-поле timestamp или datetime формат в mysql
  4. ?>
  5.  

(Отредактировано автором: 20 Ноября, 2009 - 08:21:38)

 
 Top
Champion Супермодератор
Отправлено: 20 Ноября, 2009 - 08:47:45
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Если ты кликнешь мышкой по функции date в твоем коде, то откроется справка по функции date. Там большая табличка, в которой приведены вещи, которые тебе должны помочь вывести дату почти в любом жедаемом формате.
Ну а если надо что-то оригинальное, тогда уж надо написть свою функцию.
 
 Top
Phantik
Отправлено: 20 Ноября, 2009 - 08:54:50
Post Id


Посетитель


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


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




В функцию date вторым параметром передается timestamp (целое число секунд прошедших с некой даты). Вы, видимо, храните дату в базе типом datetime, а это не целое число.

Лично мне нравится такой вариант: в базе хранить дату в виде целого числа (timestamp)
тогда код:
echo date( 'Y-m-d H:i', $myrow2[0]*1);

будет работать без каких-либо вспомогательных функций преобразования.
 
 Top
Мелкий Супермодератор
Отправлено: 20 Ноября, 2009 - 10:02:59
Post Id



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


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


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




ViTYAi пишет:
И почему PHP по умолчанию выбрал именно такой ("19 ноя 2009 0:30" формат?

Может потому, что так и записано в БД?


-----
PostgreSQL DBA
 
 Top
ViTYAi
Отправлено: 23 Ноября, 2009 - 06:40:35
Post Id


Новичок


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


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




Phantik пишет:
Вы, видимо, храните дату в базе типом datetime

да, именно такой тип используется.
Phantik пишет:
в базе хранить дату в виде целого числа (timestamp)

Нет возможности что-либо изменить в БД. Принимается как данность.
(Добавление)
Мелкий пишет:
Может потому, что так и записано в БД?

Нет... в БД такой формат записи: "2009-11-20 00:30:00.000"
 
 Top
valenok
Отправлено: 23 Ноября, 2009 - 07:23:38
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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






-----
Truly yours, Sasha.
 
My status
 Top
EuGen Администратор
Отправлено: 23 Ноября, 2009 - 10:33:58
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




valenok
ViTYAi пишет:
Читаю дату из БД MS SQL


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ViTYAi
Отправлено: 24 Ноября, 2009 - 03:50:41
Post Id


Новичок


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


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




Проблема решена на уровне запроса SQL:

select convert(varchar(23), ПОЛЕ,120) from ТАБЛИЦА
 
 Top
valenok
Отправлено: 24 Ноября, 2009 - 08:33:03
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




Да что такое, который раз не замечаю ..


-----
Truly yours, Sasha.
 
My status
 Top
nazar89
Отправлено: 02 Декабря, 2011 - 14:14:15
Post Id



Новичок


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


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




Djin_dj пишет:
Проще всего написать свою функцию и просто и можно выводить как хочешь
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.         function Time_To_Show($value){
  4.                 $montharray = array('1' => 'Января','2' => 'Февраля','3' => 'Марта','4' => 'Апреля','5' => 'Мая','6' => 'Июня','7' => 'Июля','8' => 'Августа','9' => 'Сентября','10' => 'Октября','11' => 'Ноября','12' => 'Декабря');
  5.                 $time           = explode(' ',$value);
  6.                 $date = $time[0];
  7.                         $dateconvert = explode('-',$date);
  8.                         $year  = $dateconvert[0];
  9.                         $month = $montharray[($dateconvert[1])];
  10.                         $day   = $dateconvert[2];
  11.                 $time = $time[1];
  12.         return $day." ".$month." ".$year." ".$time;
  13.         }      
  14. ?>
  15.  

на а конвертация соответственно
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. echo Time_To_Show($time);//где $time-поле timestamp или datetime формат в mysql
  4. ?>
  5.  


Спасибо, очень мне помогло, когда разобрался то и немного усовершенствовал...
 
 Top
EuGen Администратор
Отправлено: 02 Декабря, 2011 - 14:18:39
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




valenok пишет:
24 Ноября, 2009 - 08:33:03
nazar89 пишет:
02 Декабря, 2011 - 14:14:15

С Новым Годом.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
nazar89
Отправлено: 02 Декабря, 2011 - 15:26:25
Post Id



Новичок


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


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




EuGen пишет:
valenok пишет:
24 Ноября, 2009 - 08:33:03
nazar89 пишет:
02 Декабря, 2011 - 14:14:15

С Новым Годом.


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB