sql >> データベース >  >> RDS >> Mysql

URLの日付dd/mm / yyyy

    strotime()を使用する場合 有効な日時形式 を使用していることを確認する必要があります 。それ以外の場合は、strtotime() falseを返します または 予想外の値を与えます。

    XX / XX / XXXX形式を使用する日付は、米国形式であると見なされます。つまり、最初の2桁は月を表し、次の2桁は日を表し、最後の4桁は年を表します。ダッシュを使用する場合、日付はヨーロッパ形式であると見なされます。例:

    04/18/2017 = April 18, 2017
    12/18/2017 = December 18, 2017
    18-04-2017 = April 18, 2017
    18-12-2017 = December 18, 2017
    

    誤って曜日と月を切り替えた場合strtotime() 日付が無効であるため、falseを返します。

    18/04/2017 // error
    18/12/2017 // error
    04-18-2018 // error
    12-18-2017 // error
    

    上記の例は単純明快です。ただし、日付があいまいになる可能性がある場合は、問題が発生する可能性があります。例:

    04/12/2017 = April 12, 2017
    12/04/2017 = December 4, 2017
    04-12-2017 = December 4, 2017
    12-04-2017 = April 12, 2017
    

    上記の例では、日と月を切り替えることで有効な日付を取得しているため、アプリケーションで予期しない結果が生じる可能性があります。これらの潜在的な問題を解決するには、 DateTime::createFromFormat() 日付広告を解析するには、 DateTime()を返します。 Unixタイムスタンプを取得できるオブジェクト日付を別の形式に変換 、または他のDateTimeと比較するために使用します オブジェクト。

    // Parse US date format
    $date1 = DateTime::createFromFormat('m/d/Y', '04/18/2017');
    
    // Get Unix timestamp of 1493581268
    $timestamp = $date1->getTimestamp();
    
    // Parse European date format
    $date2 = DateTime::createFromFormat('d-m-Y', ''18-04-2017);
    
    // Get MySQL format (ISO-8601) of 2017-04-18
    $mysqlDate = $date2->format('Y-m-d');
    

    関連項目:

    特定のケースでは、次のコードが機能します:

    $date = $date1 = DateTime::createFromFormat('m/d/Y', '20/02/2000');
    $D->query = $date->format('Y-m-d'); // 2000-02-20
    



    1. トリガーの例を挿入または更新する前のOracle

    2. SQLServerのAlwaysOn機能の使用方法

    3. GTIDから従来のレプリケーションにロールバックする

    4. Microsoft Accessの10の最高の機能は何ですか?