ここではすべてタイムスタンプを使用します
mktime(時、分、秒、月、日、年、[is_dst])
そのパラメータは右から左に省略でき、省略されたパラメータはローカルの日付と時刻の現在の値に設定されます。
パラメータの説明
時間はオプションです。指定された時間。
分はオプションです。指定された分。
2 番目はオプションです。秒を指定します。
月はオプションです。月を数値で指定します。
日はオプションです。曜日を指定します。
年はオプションです。指定された年。一部のシステムでは、法定値は 1901 年から 2038 年の間です。ただし、この制限は PHP チュートリアル 5 では存在しません。
is_dst オプション。時刻が夏時間 (dst) 中の場合は 1、それ以外の場合は 0、不明な場合は -1 に設定します。 5.1.0 以降、is_dst パラメータは非推奨になりました。したがって、新しいタイムゾーン処理機能を使用する必要があります
私たちは日常生活の中で、朝と夕方の時間を比較することがよくありますが、時間の大きさを判断するのは非常に簡単です。ただし、時間の比較は単純な数値の比較ではないため、比較的複雑です。では、php で 2 つの倍のサイズを比較するにはどうすればよいでしょうか?
2 つの時間の大きさを比較するには、時間をタイムスタンプ形式に変換して比較する必要があります。これが最も一般的な方法です。よく使用される関数は次のとおりです: strtotime()
文法形式: strtotime(time,now)
時間が絶対時間の場合、now パラメーターは効果がありません
time が相対時間の場合、対応するパラメータは now 関数によって提供されます。now パラメータが提供されない場合、対応する時間は現在の現地時間になります。
例: 2 つの絶対時間の大きさを比較する
コード:
$zero1=date(“y-m-d h:i:s”);
$zero2=”2010-11-29 21:07:00';
echo "zero1 の時刻は次のとおりです: ".$zero1."
”;
echo "zero2 の時刻は次のとおりです: ".$zero2."
”;
if(strtotime($zero1)echo "zero1 は zero2 よりも前です。; ($zero2)){
}その他{
echo 「zero2 は zero1 よりも前です」;
}
?>
出力結果:
zero1 の時刻: 2010-11-30 21:12:55
zero2 の時刻: 2010-11-29 21:07:00
zero2はzero1より早いです
注: 例に基づいて思考を多様化できます
2 つの日付の差を計算します
オリンピックのカウントダウン、アジア大会のカウントダウン、誕生日のカウントダウン、これらのカウントダウンは 2 つの日付の差を計算することで実現できますが、これも strottime() 関数を使用する必要があります。
カウントダウンを実装するには、2 つの時間の差を整数化し、関数 ceil() を使用する必要があります
ceil() 関数の機能は、指定された実数以上の最小の整数を見つけることです
例: カウントダウンアプレット
コード例:
$zero1=strtotime (date(“y-m-d h:i:s”)) //現在時刻
$zero2=strtotime (“2011-2-03 24:00:00'); //新年の時間
$guonian=ceil(($zero2-$zero1)/86400) //60秒*60分*24時間
echo 「旧正月まではまだ $guonian 日あります!」;
?>
出力結果:
旧正月までまだ 66 日あります。
strtotime() 関数の分析
定義と使用法
strtotime() 関数は、英語のテキストの日時記述を UNIX タイムスタンプに解析します。
文法
strtotime(time,now) パラメータの説明
time は、解析する時刻文字列を指定します。
now は戻り値の計算に使用されるタイムスタンプです。このパラメータを省略した場合は、現在の時刻が使用されます。
手順
この関数は、米国英語の日付形式を含む文字列を予期し、now パラメータで指定された時刻に相対的な値を使用して、UNIX タイムスタンプ (1970 年 1 月 1 日 00:00:00 gmt からの秒数) に解析しようとします。パラメータが指定されていない場合は、現在のシステム時間が使用されます