-2

私はここにこのコードを持っています。これにより、いくつかの日付を取得できます。今日の日付は次のように保存されています。

$time = date("d-m-Y");

データベースの私の日付フィールドはvarcharであり、次の形式です:dmY

どうすればそれらを比較できますか?私はこれを使用しましたが、機能しません!

SELECT DATE_FORMAT('date','%d-%m-%Y'), id, WHERE date>$time;

助けてくれてありがとう!

4

5 に答える 5

2

データベースからフェッチして日付を比較したい場合は、varchar形式ではなく日付形式で保存することをお勧めします。

しかし今、あなたは以下を行うことができます:

最初にstrtotimeを使用して、文字列をUNIXタイムスタンプに変換します。好き :

$time = strtotime( $date );

次に、このタイムスタンプを使用して、任意の形式で日付を計算します。希望のフォーマットを取得するには、次のようにします。

$newDate = date( 'd-m-y', $time );
于 2012-10-04T14:52:52.663 に答える
1

クエリでSTR_TO_DATE関数を使用して、最初にVARCHARDATETIME値に変換してみてください。

于 2012-10-04T14:34:59.503 に答える
0

元の値を使用してWHERE句を作成しています。次のようにしてみてください。

SELECT DATE_FORMAT('date','%d-%m-%Y') AS compare_date, `id` FROM `table_name` WHERE DATE_FORMAT('date','%d-%m-%Y') > $time;

これは文字列の比較であることに注意してください。そのため、逆の方法で行うのが最善です。%Y-%m-%d

またはSTR_TO_DATE、@MicahCarrickが提案した関数を使用します。

于 2012-10-04T14:35:16.827 に答える
0

,後に余分なものがあり、クエリには句もid必要です。from

SELECT DATE_FORMAT('date','%d-%m-%Y') as new_date, id from your_table WHERE new_date > $time;
于 2012-10-04T14:35:19.737 に答える
0
      This Example Is Working 100% try Now

      $exp_date = "2006-01-16"; 

      $todays_date = date("Y-m-d"); 

      $today = strtotime($todays_date); 

      $expiration_date = strtotime($exp_date); 

      if ($expiration_date > $today) 
         { 
           $valid = "yes"; 
         } 
      else 
         { 
           $valid = "no"; 
         }
于 2014-12-22T05:51:54.270 に答える