現在、次のように時間をデータベースに保存しています:2010-05-17 19:13:37
ただし、2回比較する必要があり、1274119041
などのUNIXタイムスタンプの方が簡単だと感じています。 (これらの2つの時間は異なります)
では、どのようにタイムスタンプをUNIXタイムスタンプに変換できますか?簡単なphp関数はありますか?
あなたが探している strtotime()
あなたが欲しい strtotime :
print strtotime('2010-05-17 19:13:37'); // => 1274123617
Unixtimestampの取得:
$unixTimestamp = time();
Mysql datetime形式への変換:
$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp);
Mysqlタイムスタンプの取得:
$mysqlTimestamp = '2013-01-10 12:13:37';
Unixtimestampに変換する:
$unixTimestamp = strtotime('2010-05-17 19:13:37');
... 1つまたは一定の時間範囲と比較して、ユーザーが現実的な時間を入力したかどうかを確認します。
if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15"))
{...}
Unixタイムスタンプも安全です。次のようにして、以前の範囲チェックをチェックする前に、URLで渡された変数が有効かどうかをチェックできます。
if(ctype_digit($_GET["UpdateTimestamp"]))
{...}
データベースとしてMySQLを使用している場合、 NIX_TIMESTAMP を使用して日付フィールドをUNIXタイムスタンプとして返すことができます。
SELECT UNIX_TIMESTAMP(my_datetime_field)
また、PHP側で strtotime を使用して行うこともできます。
strtotime('2010-05-17 19:13:37');
データベースに時間を保存する場合、データベースにUNIXのタイムスタンプも提供させてください。 UNIX_TIMESTAMP(date)
を参照してください。
SELECT UNIX_TIMESTAMP(date) ...;
データベースは、日付と時刻の比較と算術も実行できます。