我将此日期时间字符串
vendredi 11 février 2022 à 20:19:56 heure normale d’Europe centrale
存储在我的数据库中。
现在我正在尝试将其转换回对应的英语 UTC 日期时间。
为了处理它,我尝试了
strtotime
:
$datetime = 'vendredi 11 février 2022 à 20:19:56 heure normale d’Europe centrale';
$tsparis = strtotime($datetime . ' Europe/Paris');
var_dump($tsparis);
这显示
bool(false)
。我怎样才能将此字符串解析回时间戳。
您可以使用 IntlDateFormatter 解析字符串中的日期并将其格式化为字符串。
在这种情况下,传递区域设置“fr_FR”以及日期和时间格式“full”就足够了:
$datetime = 'vendredi 11 février 2022 à 20:19:56 heure normale d’Europe centrale';
$parser = new IntlDateFormatter(
'fr_FR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL
);
$tsparis = $parser->parse($datetime);
var_dump($tsparis);
给予
int(1644607196)
;请参阅在线演示
这为您提供了一个标准的 Unix 时间戳,您可以使用任何您想要生成新输出的内容来处理它。
<?php
function datefr()
{
$mois = array(
"Janvier",
"Fevrier",
"Mars",
"Avril",
"Mai",
"Juin",
"Juillet",
"Août",
"Septembre",
"Octobre",
"Novembre",
"Decembre"
);
$jours = array(
"Dimanche",
"Lundi",
"Mardi",
"Mercredi",
"Jeudi",
"Vendredi",
"Samedi"
);
return $jours[date("w")] . " " . date("j") . (date("j") == 1 ? "er" : " ") .
$mois[date("n") - 1] . " " . date("Y");
}
echo datefr();