2013-05-11 5 views
0

Я использую функцию getdate(), чтобы получить дату, но я хочу, чтобы минуты, дни или что-то другое было напечатано двумя цифрами. Я хочу получить сообщение наподобие: [day.month.year][hour:min:sec].Формат даты php get with getdate()

Я пробовал так:

$today = getdate(); 
$str = "[" . gmdate("d", $today[mday]) . "." . gmdate("m", $today[mon]) . "." . $today[year] . "][" . gmdate("H", $today[hours]) . ":" . gmdate("i", $today[minutes]) . ":" . gmdate("s", $today[seconds]) . "]"; 

Вместо gmdate я использовал date, но я получаю результаты, как [01.01.2013][00:00:59]. Если я проверю, что возвращает getdate(), все в порядке.

Есть ли способ форматировать дату, как я хочу, а также получить правильный результат?

+1

Я не понимаю, как 'дата()' не делать то, что вы хотите –

+0

вместо gmdate я использовал дату; тот же самый синтакс; Я не знаю, что случилось. –

+2

Или ['date_format'] (http://www.php.net/manual/en/datetime.format.php)? –

ответ

4

Самый простой способ:

$str = date('[d.m.Y] [H:i:s]'); 

О формате:
http://www.php.net/manual/en/function.date.php

+0

Спасибо за ваш ответ! Пока я использовал метод, который я нашел. В будущем я буду использовать эту линию :). –

0

Вот ответ от OP:

Мэтт Джонсон, спасибо за вашу помощь. Я использовал date_format как это:

$today = getdate(); 
$date1 = date_create("" . $today[mday] . "." . $today[mon] . "." . $today[year] . ""); 
$date2 = date_create("" . $today[hours] . "." . $today[minutes] . "." . $today[seconds] . ""); 
$msg = "[" . date_format($date1, 'd.m.Y') . "][" . date_format($date2, 'H:i:s') . "]";