使用日期和时间名称设置PHP日期格式

使用日期和时间名称设置PHP日期格式,php,date,Php,Date,我的代码中有以下代码片段打印“06.Oktober 2016” 你知道我该怎么做才能使这些信息过时吗?你需要用格式化程序设置整个格式,以获得正确的德语字符串输出 $fmt = new IntlDateFormatter('de_DE' ,IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN); // set the format to Samstag, 01.

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


你知道我该怎么做才能使这些信息过时吗?

你需要用格式化程序设置整个格式,以获得正确的德语字符串输出

$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";
有关格式选项,请参见本页:

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


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

根据您获取日期数据的行(
$event\u date\u format=DateTime::createFromFormat('Ymd',$event\u date[0]);
)似乎您只获取了年、月和日期,而不是想要的小时和分钟。“我不能让它工作”不是一个问题。你到底期望什么?因为10月6日是星期四,所以没有办法输出“Montag”。DateTime::format('l')以英语输出工作日。你需要使用IntlDateFormatter来翻译它。顺便说一句,你可以使用DateTime的format()使用串联调用一次而不是多次,请尝试:
$event\u date\u format->format('l,d.M,G.i');
这会让您的代码更清晰。要以字母形式获取日期,您可以获取日期的编号,并使用开关盒自行完成
$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') ;
$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";