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

Форум MySQL

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

 

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

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

тема: Преобразование времени даты из PHP в MySQL
 
 автор: cheops   (22.11.2004 в 10:05)   письмо автору
 
 

Это продолжение темы http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=752
MySQL принимает дату только в формате гггг.мм.дд , а мне надо чтобы пользователь вводил дату в формате дд.мм.гггг. Как сделать обработку чтобы дата из формата дд.мм.гггг перед занесением в базу преображалась в формат привычный для MySQL т.е. гггг.мм.дд.
?????


Преобразовать время можно при помощи связки функций date() и mktime()
<?php 
  $hour 
9;
  
$minute 57;
  
$second 34;
  
$year 2004
  
$month 11
  
$day 22
  echo 
date("Y-m-d H:i:s"mktime($hour$minute$second$month$day$year)); 
?>


http://www.softtime.ru/dic/id_dic=193&id_group=7
http://www.softtime.ru/dic/id_dic=201&id_group=7

   
 
 автор: Felix   (23.11.2004 в 05:17)   письмо автору
 
   для: cheops   (22.11.2004 в 10:05)
 

Привет.

Я сделал проще.

<?
$date
="22.11.2004";
list(
$day$month$year) = sscanf($date"%02d.%02d.%04d");
$dat="$year.$month.$day";
?>

Получается $dat будет иметь значение 2004.11.22. Это мне и надо было.

   
 
 автор: Caramelis_Rex   (14.05.2005 в 07:00)   письмо автору
 
   для: cheops   (22.11.2004 в 10:05)
 

Подскажите пожалуйста, а как при считывании даты из БД (например, 2005-05-14) привести ее к виду May 14, 2005? Есть ли какой-то определенный формат для такого представления?
И еще вопрос. Если формат данных в БД является DATE, возможно ли с случае нулевого значения (нет данных) оставить ячейку пустой? В моей таблице дата в этом случае заполняется нулями.

   
 
 автор: cheops   (14.05.2005 в 13:24)   письмо автору
 
   для: Caramelis_Rex   (14.05.2005 в 07:00)
 

Для этого обычно прибегают к встроенной функции MySQL - DATE_FORMAT, ссылки на примеры работы с которой можно найти в теме http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1419. В вашем случае, запрос может выглядеть примерно следующим образом:
SELECT DATE_FORMAT(putdate,'%b %d, %Y') AS putdate FROM tbl

где putdat - поле DATE, а tbl - таблица в которой находится поле putdate.

   
 
 автор: cheops   (14.05.2005 в 13:30)   письмо автору
 
   для: Caramelis_Rex   (14.05.2005 в 07:00)
 

> Если формат данных в БД является DATE, возможно ли с случае нулевого
> значения (нет данных) оставить ячейку пустой?
Это определяется ключевым словом DEFAULT, обычно, если данные отсутствуют то в качестве значения по умолчанию используют NULL, а так стоит '0000-00-00'. Приведите оператор CREATE TABLE для вашей таблицы - будет проще придумать ALTER TABLE для её исправления... Хотя пустую строку вряд ли получится назначить, так как дата хранится в виде числа.

   
 
 автор: Caramelis_Rex   (17.05.2005 в 11:44)   письмо автору
 
   для: cheops   (14.05.2005 в 13:30)
 

Нет, создавая таблицу в БД (через PhpMyAdmin, кстати), я указывал, что в колонке Date возможно нулевое значение (NULL).
Потому мне пришлось преобразовать DATE в VARCHAR (не очень симпатично, когда в формируемой таблице в полях DATE вываливаются нули).
Но, может, можно сделать и проще? Оставить DATE и позже, при непосредственном форматировании таблицы, сделать условие, исключающее 0000-00-00? Или же оставить VARCHAR, и потом, при необходимости, просто конвертировать его в DATE? Может, есть и еще какое-нибудь решение?

   
Rambler's Top100
вверх

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