Php 如何将法语日期时间字符串转换回英语 UTC 中的等效值

问题描述 投票:0回答:2

我将此日期时间字符串

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)
。我怎样才能将此字符串解析回时间戳。

php datetime strtotime
2个回答
2
投票

您可以使用 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 时间戳,您可以使用任何您想要生成新输出的内容来处理它。


0
投票

<?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();

© www.soinside.com 2019 - 2024. All rights reserved.