|
|
|
| Это продолжение темы 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 | |
|
|
|
|
|
|
|
для: 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. Это мне и надо было. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2004 в 10:05)
| | Подскажите пожалуйста, а как при считывании даты из БД (например, 2005-05-14) привести ее к виду May 14, 2005? Есть ли какой-то определенный формат для такого представления?
И еще вопрос. Если формат данных в БД является DATE, возможно ли с случае нулевого значения (нет данных) оставить ячейку пустой? В моей таблице дата в этом случае заполняется нулями. | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|
|
|
|
|
для: Caramelis_Rex
(14.05.2005 в 07:00)
| | > Если формат данных в БД является DATE, возможно ли с случае нулевого
> значения (нет данных) оставить ячейку пустой?
Это определяется ключевым словом DEFAULT, обычно, если данные отсутствуют то в качестве значения по умолчанию используют NULL, а так стоит '0000-00-00'. Приведите оператор CREATE TABLE для вашей таблицы - будет проще придумать ALTER TABLE для её исправления... Хотя пустую строку вряд ли получится назначить, так как дата хранится в виде числа. | |
|
|
|
|
|
|
|
для: cheops
(14.05.2005 в 13:30)
| | Нет, создавая таблицу в БД (через PhpMyAdmin, кстати), я указывал, что в колонке Date возможно нулевое значение (NULL).
Потому мне пришлось преобразовать DATE в VARCHAR (не очень симпатично, когда в формируемой таблице в полях DATE вываливаются нули).
Но, может, можно сделать и проще? Оставить DATE и позже, при непосредственном форматировании таблицы, сделать условие, исключающее 0000-00-00? Или же оставить VARCHAR, и потом, при необходимости, просто конвертировать его в DATE? Может, есть и еще какое-нибудь решение? | |
|
|
|