日付文字列と MySQL タイムスタンプの比較に興味があります。ただし、簡単な変換は見られません。私は明らかな何かを見落としていますか?
6 に答える
タイムスタンプからフォーマットへの変換:
date('Y-m-d', $timestamp);
フォーマット済みからタイムスタンプへの変換:
mktime(0, 0, 0, $month, $day, $year, $is_dst);
詳細なドキュメントについては、 dateとmktimeを参照してください。
保存に関しては、書式設定された日付として保存するために MySQL DATE 形式を使用するかどうかはあなた次第です。UNIX タイムスタンプとして格納するための整数として。または、数値のタイムスタンプを読み取り可能な形式に変換する MySQL の TIMESTAMP 形式を使用できます。TIMESTAMP 情報については、MySQL Doc を確認してください。
MySQL の関数を使用することで、PHPstrtotime()
でorを使用する必要がなくなります。getdate()
UNIX_TIMESTAMP()
SELECT UNIX_TIMESTAMP(timestamp) FROM sometable
結果のデータは、標準の整数の Unix タイムスタンプになるため、 と直接比較できますtime()
。
プロセスを簡素化するために、この小さな関数を作成しました。
/**
* Convert MySQL datetime to PHP time
*/
function convert_datetime($datetime) {
//example: 2008-02-07 12:19:32
$values = split(" ", $datetime);
$dates = split("-", $values[0]);
$times = split(":", $values[1]);
$newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]);
return $newdate;
}
これが役立つことを願っています
strtotime()とgetdate()は、文字列とタイムスタンプから日付を取得するために使用できる 2 つの関数です。ただし、MySQL と PHP のタイムスタンプを変換する標準ライブラリ関数はありません。
PHP日付関数を使用します。mysql のUNIX_TIMESTAMP関数を使用して、クエリで mysql タイムスタンプを Unix タイムスタンプに変換する必要がある場合があります。
次の形式の日付文字列:
YYYY-MM-DD
時間は関連付けられていません。MySQL タイムスタンプの形式は次のとおりです。
YYYY-MM-DD HH:mm:ss
2 つを比較するには、たとえば真夜中のように、日付文字列に時刻を追加する必要があります
$datetime = '2008-08-21'.' 00:00:00';
次に、関数を使用してそれらの間のエポック時間を比較します
if (strtotime($datetime) > strtotime($timestamp)) {
echo 'Datetime later';
} else {
echo 'Timestamp equal or greater';
}