Php 将strotime()转换为StrFTime()

Php 将strotime()转换为StrFTime(),php,strtotime,strftime,whmcs,Php,Strtotime,Strftime,Whmcs,我被要求为我们的计费系统编写一个模块,并使用我熟悉的所有功能完成它。它是在英语环境下测试的,但我没有考虑(也不知道)我们公司使用的实际系统是法语 我写的代码是 $due_date = strtotime($next_due_date); $today = date('Y-m-d'); $today_date = strtotime($today); if ($due_date > $today_date) { 然而,我对StrFTime并不熟悉,我想知道如何使用它使这段代码在法语地区工

我被要求为我们的计费系统编写一个模块,并使用我熟悉的所有功能完成它。它是在英语环境下测试的,但我没有考虑(也不知道)我们公司使用的实际系统是法语

我写的代码是

$due_date = strtotime($next_due_date);
$today = date('Y-m-d');
$today_date = strtotime($today);

if ($due_date > $today_date) {

然而,我对StrFTime并不熟悉,我想知道如何使用它使这段代码在法语地区工作?

给出了一个简单而快速的示例。希望这有帮助

<?php
        setlocale(LC_ALL, 'fra_fra');

        $today = date('Y-m-d');
        $date_string = utf8_encode(strftime('%d %B %Y', strtotime($today)));
        echo $date_string;
?>

首先,您应该使用
setlocale

setlocale(LC_TIME, "fr_FR");
其次,对于将日期作为字符串或int进行比较,您仍然应该使用
strotime
,而不是
strftime
。(或者您可以使用格式为
YYYY-mm-dd

strftime
仅用于将日期表示为字符串。 如果要存储或操作它,应使用标准格式,而不是本地化格式。请参阅

为了避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()

所以一个可能的代码

//$next_due_date must be in a standard format like YYYY-mm-dd (but not only)
$due_date = strtotime($next_due_date);
$today_date = time();

if ($due_date > $today_date) {
    echo strftime("%c",$due_date) . " is in the future";
}

在法语区域设置中,
$next\u due\u date
作为日期的字符串表示将包含哪些内容?您面临的问题到底是什么,哪些内容没有正常工作?您能否显示一些示例数据?strftime的第二个参数默认为time(),因此此答案中有多余的代码。