[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение формата даты
kollega
В общем есть в переменной какая-то дата. Необходимо изменить её формат на какой-то другой. Я использую вот этот метод:
$d = '2012-01-05 19:54:31';
$d = date("Y.m.d H:i", strtotime($d));

Впринципе, работает. Но так правильно? или в strtotime() можно подставлять только дату в текстовом формате на английском языке ( клик ) ?



Спустя 3 минуты, 50 секунд (5.01.2012 - 18:59) killer8080 написал(а):
kollega
из БД можно доставать дату сразу в нужном виде wink.gif

Спустя 2 минуты, 57 секунд (5.01.2012 - 19:02) kollega написал(а):
killer8080, я знаю :
....DATE_FORMAT(`date`,'%d-%m-%Y') AS `date`...

Но там параметр: '%d-%m-%Y' с процентами. а у меня Y.m.d H:i (без "%" и их не подставить).

Спустя 57 секунд (5.01.2012 - 19:02) inpost написал(а):
kollega
Тебе внутри пхп, или при выборке из БД? Если выборка из БД, то DATE_FORMAT.

Спустя 1 минута, 49 секунд (5.01.2012 - 19:04) kollega написал(а):
inpost, смотри выше

Спустя 3 минуты, 43 секунды (5.01.2012 - 19:08) killer8080 написал(а):
Цитата (kollega @ 5.01.2012 - 18:02)
Но там параметр: '%d-%m-%Y' с процентами. а у меня Y.m.d H:i (без "%" и их не подставить).

Причем здесь проценты? user posted image
....DATE_FORMAT(`date`,'%Y.%m.%d %H:%i') AS `date`...

Спустя 2 минуты, 43 секунды (5.01.2012 - 19:11) kollega написал(а):
А можно без них? Просто так:
....DATE_FORMAT(`date`,'Y.m.d H:i') AS `date`...
?

Спустя 26 секунд (5.01.2012 - 19:11) Winston написал(а):
Цитата (kollega @ 5.01.2012 - 18:02)
(без "%" и их не подставить).

Дык они и не будут подставляться, % нужен только для того, чтобы символы d m Y и т.п. воспринялись как матасиволы, а не обычные литералы.

Спустя 1 минута, 19 секунд (5.01.2012 - 19:12) killer8080 написал(а):
kollega
собственно Winston уже ответил smile.gif

Спустя 2 минуты, 43 секунды (5.01.2012 - 19:15) kollega написал(а):
killer8080, Winston, значит я не так объяснил. Объясню еще раз.
В общем есть в переменной какая-то дата. Необходимо изменить её формат на какой-то другой. Я использую вот этот метод:

$fd = 'Y.m.d H:i';
$d = '2012-01-05 19:54:31';
$d = date($fd, strtotime($d));

Причем переменная $fd задается из админки сайта (без '%').

Спустя 7 минут, 35 секунд (5.01.2012 - 19:23) killer8080 написал(а):
Цитата (kollega @ 5.01.2012 - 18:15)
Причем переменная $fd задается из админки сайта (без '%').

В php date() проценты и не нужны, вопрос - откуда дата изначально берётся? Если из БД, то логично было бы её отформатировать на стороне самой БД, а в php принять уже в нужном виде.

Спустя 6 минут, 47 секунд (5.01.2012 - 19:30) kollega написал(а):
В админке, на странице настроек я меняю формат вывода даты на 'Y.m.d H:i'-> нажимаю кнопку сохранить и эта настройка сохраняется в файл. Далее при выводе статьи вызываю этот файл с настройками и извлекаю эту настройку даты(т.е. 'Y.m.d H:i') . Далее вытаскиваю все данные по данной статье и делаю вот это :

$d = '2012-01-05 19:54:31';
$d = date($fd, strtotime($d));

где $d - дата добавления статьи, вытащенная из mysql
$fd - настройка даты(т.е. 'Y.m.d H:i')

Такой способ верный?

Вот так-то нельзя:
....DATE_FORMAT(`date`,'Y.m.d H:i') AS `date`...

Спустя 16 минут, 39 секунд (5.01.2012 - 19:46) killer8080 написал(а):
Цитата (kollega @ 5.01.2012 - 18:30)
Такой способ верный?

Если есть надобность оперативно менять формат даты, то можно и так. Так же переменную можно подставлять в sql запрос, и соответственно задавать формат по правилам sql. Разницы нет, как тебе удобней, так и делай smile.gif

Спустя 4 минуты, 13 секунд (5.01.2012 - 19:50) kollega написал(а):
Цитата (killer8080 @ 5.01.2012 - 16:46)
Так же переменную можно подставлять в sql запрос, и соответственно задавать формат по правилам sql.

Приведи пример. есть:

$fd = 'Y.m.d H:i';

что дальше?

Спустя 4 минуты, 14 секунд (5.01.2012 - 19:55) killer8080 написал(а):
kollega
кстати ты можешь сразу брать из БД timestamp, тогда можно обойтись без strtotime()
... UNIX_TIMESTAMP( `date` ) AS `date` ...

а в php
$d = '2012-01-05 19:54:31';
$d = date("Y.m.d H:i", $row['date']);

как вариант

Спустя 2 минуты, 41 секунда (5.01.2012 - 19:57) killer8080 написал(а):
Цитата (kollega @ 5.01.2012 - 18:50)
Приведи пример. есть:

$fd = 'Y.m.d H:i';

что дальше?

Не
$fd = 'Y.m.d H:i';

а
$fd = '%Y.%m.%d %H:%i';

подставляешь в запрос
mysql_query("SELECT DATE_FORMAT(`date`,'".$fd."') AS `date`...")

Спустя 1 минута, 45 секунд (5.01.2012 - 19:59) kollega написал(а):
Вот я про это и говорил, что у меня 'Y.m.d H:i' а не '%Y.%m.%d %H:%i', поэтому сразу в запрос нельзя.

killer8080 +

Спустя 2 минуты, 49 секунд (5.01.2012 - 20:02) killer8080 написал(а):
Цитата (kollega @ 5.01.2012 - 18:59)
Вот я про это и говорил, что у меня 'Y.m.d H:i' а не '%Y.%m.%d %H:%i', поэтому сразу в запрос нельзя.

Ну так и в чем собственно вопрос?

Спустя 1 минута, 20 секунд (5.01.2012 - 20:03) kollega написал(а):
Вопрос был можно-ли сделать так:
$d = '2012-01-05 19:54:31';
$d = date("Y.m.d H:i", strtotime($d));

для изменения формата даты

ОТВЕТ: МОЖНО

Спустя 2 минуты, 10 секунд (5.01.2012 - 20:05) killer8080 написал(а):
Цитата (kollega @ 5.01.2012 - 19:03)
ОТВЕТ: МОЖНО

само собой smile.gif

Спустя 2 минуты, 12 секунд (5.01.2012 - 20:08) kollega написал(а):
killer8080, спасиб за помощь))))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.