2011-02-06 15 views
2

私はCodeIgniterで構築しているアプリケーションがあります。私はdatetimeフィールドを持つSQL Server DBにレコードを持っています。PHP:この日付書式のヘルプ

m/d/Yのテキストフィールドに入力された日付からこれらのレコードを照会しています。これは、dbの日付形式に対応します。

私はイギリスにいます!だから私はd/m/Yのように日付を入力したいと思う。だから私はこれをキャプチャし、適切なフォーマットにフォーマットし、それを検証する必要があります。

ここでは、コードのフォーマットに使用するには:

$datestring = "%m/%d/%Y"; 
    if(isset ($_POST['from_date']) AND isset ($_POST['to_date'])){ 
     $from = mdate($datestring, strtotime($_POST['from_date'])); 
     $to = mdate($datestring, strtotime($_POST['to_date'])); 

私は思う)私はCI日付ヘルパーからmdateを使用していますが、それは(ほとんどの日付と同じです。

私はデータ13/12/2010を入力した場合、フォームを投稿して起こる。このHow'd

string(10) "02/06/2011" 

として、それが出てくる新しい日付をダンプ?

誰かが手を貸せますか? :D

私はどうなるのかビリー

答えて

4

答えは、ヨーロッパの日付形式は、ダッシュを使用していることではありませんスラッシュ。 manualによれば

注:M/D/YまたはDMY形式で

日付が は、様々な構成要素間 セパレータを見て非曖昧化された:セパレータ場合 スラッシュ(/)の場合、アメリカのm/d/yは となります。区切り記号が ダッシュ( - )またはドット(。)の場合は、ヨーロッパのd-m-y形式 とみなされます。正しい形式は、魔法のように動作使用

// American format 
// 

$_POST['from_date'] = "02/06/2011";  
$yankeeTimestamp = strtotime($_POST['from_date']); 

// European format 
// 

$_POST['from_date'] = "06-02-2011";  
$euroTimestamp = strtotime($_POST['from_date']); 

echo date("m/d/Y", $yankeeTimestamp); // returns 02/06/2011 
echo date("m/d/Y", $euroTimestamp); // returns 02/06/2011 
+0

おかげで、これは華麗な例です。 – iamjonesy

1

は「/」で日付を爆発とはmktimeで新しい日付を作るです:

$from = explode('/', $_POST['from_date']); 
$from = mktime(0, 0, 0, $from[1], $from[0], $from[2]); 
$from = mdate($datestring, $from);