ホームページ  >  記事  >  バックエンド開発  >  PHP ノート: 日付関数の使用の概要_PHP チュートリアル

PHP ノート: 日付関数の使用の概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:11:41740ブラウズ

はじめに

PHPはとても素晴らしい言語です。これは十分に強力であり (最大のブログ (WordPress) の中核言語)、十分に普及しており (最大のソーシャル ネットワーキング サイトである Facebook で実行されます)、十分にシンプルです (初心者に推奨される入門言語として)。低コストのマシンでうまく機能します。さらに、PHP 言語には、マシンにインストールするのに非常に便利な、非常に優れたサーバー パッケージ (WAMP や MAMP など) が多数あります。 PHP には非常に豊富なライブラリ リソースがあるため、開発者は一部のビジネスを簡単に処理できます。プロジェクト内で日付を扱うことが最も多いので、今日は日付関数から学習していきます。

簡単な日付の例を挙げてください

echo コマンドを使用して、コンテンツをクライアント (ブラウザ) に出力します。次のコードをベースコードとして使用します。

次のようにコードをコピーします: & lt; html lang = "en" & gt; utf-8" /& gt; php5 での日付の使い方

date_default_timezone_set('Asia/Shanghai');
echo "今日は ",date( 'l');
?>




ブラウザに次のコンテンツが表示されます。

今日は金曜日 この関数は曜日をテキスト形式で出力します。 date 関数には、少なくとも 1 つの文字パラメーターが必要です (このパラメーターは、現在の日付の形式を指定する方法を示します)。


さまざまな形式を試してください

PHP マニュアルで PHP の日付関数を見ると、日付をフォーマットする方法がたくさんあることがわかります。

今日は 2012-08-17 です
一部の日付は非常に一般的に使用されるため、PHP では使用できる定数がいくつか提供されています。たとえば、Cookie を使用してクライアントの日付を取得できます。

次の内容が得られます

今日は金曜日、17-Aug-12 11:34:38 CST 定数を使用するときは引用符を使用しないように注意してください。

今何時ですか?

現在時刻を出力したい場合は、日付 (さまざまな書式設定文字パラメーター) を使用できます。

を取得します。
時刻は午前11時39分59秒です

タイムゾーンをローカライズします

上記のコードが正しい時刻を提供しない場合は、サーバーがローカルのタイムゾーンとは異なるタイムゾーンに設定されている可能性が高くなります。サーバーのタイムゾーンを指定する必要があり、次のコードを使用します:

これにより、中国の上海のタイムゾーンが設定されます。これは php5 (php の古いバージョンに注意してください) 用の機能で、タイムゾーンを選択するための機能がたくさんあります。これを永続的に有効にしたい場合は、php.ini ファイルを変更できます。

他の時間を取得しましょう

今ではなく、別の時間が必要になることがよくあります。 date() 関数を使用して時刻を作成すると、システムは Unix システム時刻を使用します。この時間は、1970 年 1 月 1 日 00:00:00 GMT (Unix Epoch Time) から現在までの秒数を表します。

指定した時刻の日付を取得する方法を詳しく説明すると、date(0 関数の 2 番目のパラメーターとして秒数を指定できます。
)

今日は 2011-06-27 です
これは役に立たないように思えるかもしれませんが、date() 関数を使用して計算できることを意味します。これを行う前に、タイムスタンプを作成するだけです。


タイムスタンプを作成する

タイムスタンプを作成するにはさまざまな方法があります。 mktime() 関数を使用して、必要なタイムスタンプを取得できます。

コードをコピー

コードは次のとおりです:
$mytime=mktime(9, 23, 33, 6, 26, 2011);
echo "今日は ",date(' Y-m-d g: i:sa', $mytime);

?>結果は: 今日は 2011-06-26 9:23:33am mktime() です


この関数では、時間、分、秒、月、日、年を順番に渡す必要があります。これはタイムスタンプを取得する良い方法ですが、もっと優れた方法もあります。


文字を通じてタイムスタンプを取得する

strtotime() 関数を使用してタイムスタンプを取得でき、PHP は読み取り可能な文字を Unix タイムスタンプに変換します。 PHP は文字をタイムスタンプに変換する際に非常に柔軟であるため、あらゆる種類の値を入力して必要なタイムスタンプを取得できます。

これは簡単な例です:

コードをコピーします
コードは次のとおりです:


$mytime=strtotime("2011年6月26日午後7時50分");
echo "今日は ",date('Y-m-d g:i:sa', $mytime);
?>

出力:

今日は 2011-06-26 7:50:00pm です

PHP は文字を解釈するのが非常に上手ですが、完璧ではないため、入力した文字を挿入する前に必ずテストしてください。 「英語のような手順」を使用して必要なタイムスタンプを変換します。これは非常に良い方法です。次のように実行できます:

コードをコピーします コードは次のとおりです:

$nextfriday=strtotime("next Friday") //Next Friday
$nextmonth=strtotime("+1 Month "); //今日から 1 か月後の時間を計算します
$lastchristmas=strtotime("-1 year dec 25"); //昨年のクリスマスの日付範囲を取得します



strtotime で返される値は変換されますこれらの数値を使って基本的な算術演算を行うことができ、これらの数値を使って非常に興味深い多くのことを行うことができます。たとえば、16 週間にわたって毎週火曜日に科目を教える必要があり、その授業時間を確保したいとします。次のことができます。
コードをコピーします コードは次のとおりです:

$startdate = strtotime('次の火曜日');
$enddate = strtotime('+16週間', $startdate);
$currentdate = $startdate;
echo '
    ';
    while($currentdate < $enddate):
    echo "t
  1. ", date('M d', $currentdate);
    $currentdate = strtotime(' +1 year', $currentdate);
    endwhile;
    echo '
';
?>

次の結果が得られます:
コードをコピーしますコードは次のとおりです:

8月21日
8月28日
9月4日
9月11日
9月18日
9月25日
10月2日
10月09日
10月16日
10月23日
10月30日
11月6日
11月13日
11月20日
11 月 27 日
12 月 4 日

次の行に注目してください: $currentdate = strtotime("+1 week", $currentdate)。この行では、2 番目のパラメーターとしてタイムスタンプを指定する必要があることがわかります。strtotime は、デフォルトのタイムスタンプ (今日) の代わりにこのパラメーターを使用して計算を実行します。

特定の日付までの日数

電卓を使用する場合、特定の日までの日数を計算してみます。 11 月の第 4 木曜日のタイムスタンプを簡単に計算できます。

コードをコピー コードは次のとおりです:

$someday = strtotime("3週間の木曜日、11月1日");
$daysUtilDate = ceil(($someday - time())/60/60/ 24);
echo "感謝祭までは ", $daysUtilDate, " があります";

まず、感謝祭の日付 (11 月 1 日以降の最初の木曜日の後の 3 番目の木曜日) の計算を開始し、次に単純な算術演算を渡します。感謝祭から現在までの日数を確認します。比較演算を実行するときは、現在の時刻のエポックからの秒数を返す time() を使用できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326804.html技術記事はじめに PHP は非常に素晴らしい言語です。十分強力で (最大のブログ (wordpress) の中核言語)、十分に広範で (最大のソーシャル ネットワーキング サイト Facebook で実行されている)、それだけで十分です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。