2013-01-24 10 views
5

私は請求システムのモジュールを書くように求められ、私が慣れ親しんだすべての機能を使って完成させました。それは英語のセットアップでテストされましたが、実際のシステムがフランス語であるという事実を考慮に入れませんでした。strtotime()をStrFTime()に変換する

私が書いたコード...

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

if ($due_date > $today_date) { 

は、しかし、私はstrftimeのに慣れていないと私は、このコードは、フランス語ロケールのために仕事を得るためにそれを使用することができますか疑問?

+0

フランス語のロケールでは、 '$ next_due_date'は日付の文字列表現として何を含んでいますか? – shadyyx

+0

あなたが直面している問題とは何か、それがうまくいかないものは何ですか?いくつかのサンプルデータを表示できますか? –

+0

http://php.net/manual/en/function.strftime.php – bodi0

答えて

0

簡単で簡単な例を作成しました。あなたはsetlocale

setlocale(LC_TIME, "fr_FR"); 

セカンドを使用する必要があり、これは

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

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

まずホープについては、文字列として日付を比較したり、あなたがまだstrtotimeなくstrftime使用する必要がありますint型。 (またはあなたが形式YYYY-mm-dd

strftimeを常に文字列を使用することができますが、文字列として日付を表すためだけのためである。 あなたはそれを保存する、またはそれを操作したい場合は、標準のフォーマットを使用してローカライズされてはならない。doc

を参照してください。

は、潜在的なあいまいさを避けるために、それが可能な場合)ISO 8601(YYYY-MM-DD)日付または日時:: 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"; 
} 
関連する問題