我的代码中有以下代码段打印“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') ;
我知道我有什么要把这些信息从日期中删除?
答案 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并不包含时间 - 绝对正确。因此,在您调整输入以包含时间之前,这些事件的时间将不正确。