将strtotime()转换为StrFTime()

时间:2013-01-24 12:24:34

标签: 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并且想知道如何使用它来使这段代码适用于法语区域设置?

2 个答案:

答案 0 :(得分:2)

首先,您应该使用setlocale

setlocale(LC_TIME, "fr_FR");

其次,对于比较日期为字符串或整数,您仍应使用strtotime而不是strftime。 (或者您可以使用格式为YYYY-mm-dd

的字符串

strftime仅用于将日期表示为字符串。 如果您想存储它或操纵它,您应该使用标准格式而不是本地化。见doc

  

为避免潜在的歧义,最好尽可能使用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";
}

答案 1 :(得分:-1)

做了一个简单快速的例子。希望这有帮助

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

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