私はここにこのコードを持っています。これにより、いくつかの日付を取得できます。今日の日付は次のように保存されています。
$time = date("d-m-Y");
データベースの私の日付フィールドはvarcharであり、次の形式です:dmY
どうすればそれらを比較できますか?私はこれを使用しましたが、機能しません!
SELECT DATE_FORMAT('date','%d-%m-%Y'), id, WHERE date>$time;
助けてくれてありがとう!
データベースからフェッチして日付を比較したい場合は、varchar形式ではなく日付形式で保存することをお勧めします。
しかし今、あなたは以下を行うことができます:
最初にstrtotimeを使用して、文字列をUNIXタイムスタンプに変換します。好き :
$time = strtotime( $date );
次に、このタイムスタンプを使用して、任意の形式で日付を計算します。希望のフォーマットを取得するには、次のようにします。
$newDate = date( 'd-m-y', $time );
クエリでSTR_TO_DATE関数を使用して、最初にVARCHAR
をDATETIME
値に変換してみてください。
元の値を使用して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が提案した関数を使用します。
,
後に余分なものがあり、クエリには句もid
必要です。from
SELECT DATE_FORMAT('date','%d-%m-%Y') as new_date, id from your_table WHERE new_date > $time;
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";
}