PHP日期格式,包含日期和时间的名称

时间:2016-09-26 12:44:26

标签: php date

我的代码中有以下代码段打印“06. Oktober 2016”

<?php
    // german umlauts in date not possible without date formatter
    $fmt = new IntlDateFormatter('de_DE' ,IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
    $fmt->setPattern("MMMM");
    $event_date_format = DateTime::createFromFormat('Ymd', $event_date[0]);
    $dateOp = $event_date_format->format('d') . ". " . $fmt->format($event_date_format) . " " . $event_date_format->format('Y');
?>

我想要包括“Montag,06。Oktober 2016,12:33 Uhr”

我在使用它时似乎无法做到这一点:

$dateOp = $event_date_format->format('l') . ", " . $event_date_format->format('d') . ". " . $fmt->format($event_date_format) . " " . $event_date_format->format('Y') . ", " . $event_date_format->format('G') . "." . $event_date_format->format('i') ;

我知道我有什么要把这些信息从日期中删除?

1 个答案:

答案 0 :(得分:1)

您希望使用格式化程序设置整个格式,以使用德语字符串获得正确的输出。

$fmt = new IntlDateFormatter('de_DE' ,IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
// set the format to Samstag, 01. Oktober 2016, 14:30
$fmt->setPattern("cccc, dd. MMMM YYYY, HH:mm");

// adjusted per edit 2: you need will also need to ensure your input $event_date[0] is in a format which includes a time
$event_date_format = DateTime::createFromFormat('Ymd H:i', $event_date[0]);

// you can add the Uhr here, or add it in the format, escaping as needed
$dateOp = $fmt->format($event_date_format)." Uhr";

有关格式选项,请参阅此页:http://userguide.icu-project.org/formatparse/datetime

编辑:抱歉,只是注意到了时间的要求并进行了相应的编辑。

编辑2:刚刚注意到Anton在回复中指出你创建$ event_date_format并不包含时间 - 绝对正确。因此,在您调整输入以包含时间之前,这些事件的时间将不正确。