Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Дата по маске


Автор: InfMag 2.10.2008, 14:38
Доброго времени суток!

В общем у меня есть дата в строковом формате следующего вида: 02.10.2008 12:44:21 или если время будет по нулям, то получаю лишь: 02.10.2008 и ничего более. В общем мне нужно вывести дату своего формата по date(), есть возможность реализовать это какими-то стандартными средствами или полюбому прийдется свою функцию писать explodами разбивать эту тему?

Автор: Sunvas 2.10.2008, 15:49
Да любого формата можно вывести дату через Date. Например:
Код

echo date('Y-m-d');# <-- 2008-10-02
echo date('Y.m.d');# <-- 2008.10.02


Вот все буквы, и что они значат:
Цитата

    * a - "am" или "pm" 
    * A - "AM" ил "PM" 
    * B - время Swatch Internet 
    * d - день (число) месяца, 2 цифры с ведущим нулём, если необходимо; т. е от "01" до "31" 
    * D - день недели, буквенный, 3 буквы; например, "Fri" 
    * F - месяц, буквенный, long; например, "January" 
    * g - час, 12-часовой формат без ведущих нулей; т.е. от "1" до "12" 
    * G - час, 24-часовой формат без ведущих нулей; т.е. от "0" до "23" 
    * h - час, 12-часовой формат; т.е. от "01" до "12" 
    * H - час, 24-часовой формат; т.е. от "00" до "23" 
    * i - минуты; т.е. от "00" до "59" 
    * I (заглавная i) - "1", если Daylight Savings Time, "0" - в противном случае. 
    * j - день (число) месяца без ведущих нулей; т.е. от "1" до "31" 
    * l ('L' в нижнем регистре) - день недели, буквенный, long; например, "Friday" 
    * L - boolean, указывающее, високосный ли год; т.е. "0" или "1" 
    * m - месяц; т.е. от "01" до "12" 
    * M - месяц, буквенный, 3 буквы; например, "Jan" 
    * n - месяц без ведущих нулей; т.е. "1" to "12" 
    * O - Разница с временем по Гринвичу, в часах; например, "+0200" 
    * r - RFC 822 формат даты; например, "Thu, 21 Dec 2000 16:01:07 +0200" (введён в PHP 4.0.4) 
    * s - секунды; т.е. от "00" до "59" 
    * S - простой английский суффикс для дня (числа) месяца, 2 символа; т.е. "st", "nd", "rd" или "th" 
    * t - количество дней в данном месяце; т.е. от "28" до "31" 
    * T - установка Timezone/Часовой пояс на данной машине; например, "EST" или "MDT" 
    * U - секунды эпохи Unix Epoch (начиная с January 1 1970 00:00:00 GMT) 
    * w - день недели, числовой, т.е. от "0" (Sunday) до "6" (Saturday) 
    * W - ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) 
    * Y - год, 4 цифры; например, "1999" 
    * y - год, 2 цифры; например, "99" 
    * z - день года; т.е. от "0" до "365" 
    * Z - смещение часового пояса, в секундах (т.е. от "-43200" до "43200"). Смещение часовых поясов к западу от UTC всегда отрицательное, а для поясов в востоку от UTC - всегда положительное.

Автор: bars80080 2.10.2008, 17:05
Цитата(InfMag @  2.10.2008,  14:38 Найти цитируемый пост)
В общем у меня есть дата в строковом формате 

вот всегда убеждаюсь, что надо просто хранить дату в формате таймстамп, и никаких проблем не будет (за исключением запредельных дат). можно какие-угодно форматы строить

нельзя ли изначально пользоваться таймстампом?

Автор: InfMag 2.10.2008, 20:46
Sunvas, это я естессна знаю) я про другое вобще

bars80080, ну тут ситуация такая просто, не вариант иначе. В принципе функцию написать свою 2 минуты, просто на будущее хотелось бы знать что там типа да как smile

Автор: Nigel 2.10.2008, 21:11
А strtotime не катит?
Код

$t = '02.10.2008';
$t2 =  strtotime($t);
printf("Stamp %d - %s; original %s",$t2, date("Y.m.d", $t2), $t);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)