6

日付文字列と MySQL タイムスタンプの比較に興味があります。ただし、簡単な変換は見られません。私は明らかな何かを見落としていますか?

4

6 に答える 6

14

タイムスタンプからフォーマットへの変換:

date('Y-m-d', $timestamp);

フォーマット済みからタイムスタンプへの変換:

mktime(0, 0, 0, $month, $day, $year, $is_dst);

詳細なドキュメントについては、 datemktimeを参照してください。

保存に関しては、書式設定された日付として保存するために MySQL DATE 形式を使用するかどうかはあなた次第です。UNIX タイムスタンプとして格納するための整数として。または、数値のタイムスタンプを読み取り可能な形式に変換する MySQL の TIMESTAMP 形式を使用できます。TIMESTAMP 情報については、MySQL Doc を確認してください。

于 2008-08-21T17:29:34.113 に答える
3

MySQL の関数を使用することで、PHPstrtotime()でorを使用する必要がなくなります。getdate()UNIX_TIMESTAMP()

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable

結果のデータは、標準の整数の Unix タイムスタンプになるため、 と直接比較できますtime()

于 2008-08-27T15:37:51.057 に答える
2

プロセスを簡素化するために、この小さな関数を作成しました。

/**
 * 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;
}

これが役立つことを願っています

于 2009-03-11T18:38:16.480 に答える
0

strtotime()getdate()は、文字列とタイムスタンプから日付を取得するために使用できる 2 つの関数です。ただし、MySQL と PHP のタイムスタンプを変換する標準ライブラリ関数はありません。

于 2008-08-21T17:30:10.463 に答える
0

PHP日付関数を使用します。mysql のUNIX_TIMESTAMP関数を使用して、クエリで mysql タイムスタンプを Unix タイムスタンプに変換する必要がある場合があります。

于 2008-08-21T17:30:20.663 に答える
0

次の形式の日付文字列:

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';
}
于 2008-08-21T17:57:38.820 に答える