ホームページ >php教程 >php手册 >PHP の日付と時刻

PHP の日付と時刻

WBOY
WBOYオリジナル
2016-06-21 09:08:091147ブラウズ

PHP には、日付を表示および処理するための使いやすい関数が多数あります。



日付または時刻を特定の形式で表示するには、date() 関数を使用します。日付を表示する形式と、表示する日付を表すタイムスタンプの 2 つのパラメータを取ります。このタイムスタンプは、前述したように 1970 年からの合計秒数である必要があります (現在の時刻を使用したい場合は、「現在」のタイムスタンプを返す time() 関数を使用します)。 date() には、C の strftime() 関数や Perl の POSIX::strftime() 関数と同様に、多くの書式設定オプションがあります。


$birthday_stamp = mktime(19,45,0,3,10,1975);

$birthday_formatted = date('F d, Y - g:ia',$birthday_stamp);

echo "David wasborn on $birthday_formatted."

?>

David は 1975 年 3 月 10 日 - 午後 7 時 45 分に生まれました


もちろん、特定の日付が必要な場合は、 , この複雑な書式設定機能はあまり役に立ちません。なぜなら、フォーマットがどのようなものになるかを事前に知っているからです。これらの関数は、ユーザーが日付を選択する必要があるフォームの出力部分を処理する場合に便利です:



上記は、今日と今後 9 日間の 10 個のオプションを含むラジオ ボタン ボックスを出力します。プログラム ループが開始する前に、現在の時刻を変数 $d に保存します。各



最初の

after NAME="日">';

for ($i = 1; $i
echo "
';

}

?>これまで議論していないことです。 $months 配列は、1 月のインデックスを 0 ではなく 1 にする必要があるため、少し書き方が異なります。さらに、すべてのフォーム要素の値を手動でリストするよりも、プログラムによってフォームを自動的に生成する方が簡単です。そのため、フォームの上部は、display_form() 関数の唯一の部分です。 PHP モードに属しません。さらに、データ ("Y") を使用して変数 $start_year と変数 $end_year を設定すると、今年から 10 年間の時間範囲を簡単に処理できます。
以下はフォームを処理する関数です:




function process_form() {

global $dotw;

global $month;

global $day;

global $year;

$ timestamp = mktime(0,0,0,$month,$day,$year);

$next_dotw = '';

$next_timestamp = $timestamp;

while ($next_dotw != $dotw) {

$next_timestamp += 86400;

$next_dotw = date('l',$next_timestamp);

}

$formatted_first = date('F d, Y',$timestamp);

$formatted_next = date('F d, Y',$next_timestamp);

echo "$formatted_first の後の最初の $dotw は $formatted_next.";

}

?> まず、このコードは Convert を取得します。日付を Unix タイムスタンプ形式に変換します。より慎重になる必要がある場合は、結果の日付が法的な日付範囲内に収まるようにコードを追加できますが、ここではその必要はありません。

探している「次の日」がユーザーが入力した週番号ではない場合、ループが継続します。それらが異なる場合、日付で表される合計秒数が増分され (86400 秒 = 24 時間 * 60 分 * 60 秒)、その秒数で表される週数が再計算されます。

週番号が一致すると、 process_form() 関数は正しいメッセージを出力します:

1999 年 6 月 25 日以降の最初の日曜日は、1999 年 6 月 27 日です。

これらの関数を一緒にバンドルするために、おなじみのメイン ループも必要です。


if (empty($stage)) { display_form(); }

else { process_form();

?> Daylight を処理するには、より複雑なコードが必要になる場合があります。時間と異なるタイムゾーンを節約できますが、date() 関数と mktime() 関数は Unix タイムスタンプ変換を処理するための基本的なツールであり、アルゴリズム的に簡単に操作でき、直感的な方法で日付と時刻を表現できます。関数 date() および mktime() は、マシンのタイムゾーンに基づいた時間で動作します。グリニッジ標準時 (GMT) を使用する場合は、関数 gmdate() および gmmktime() を使用できます。

たとえば、東部夏時間 (グリニッジ標準時より 4 時間遅れ) のコンピューターの場合:


$today = mktime(12,0,0,6,25,1999);それは '.date('g:i:s a, F d, Y',$today);

echo '';

echo 'GMT では '.gmdate('g:i :s a, F d 、Y',$today);

?>

表示します

ここでは、1999 年 6 月 25 日の午後 12:00:00 です

GMT では、1999 年 6 月 25 日の午後 4:00:00 です







声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。