ホームページ バックエンド開発 PHPの問題 PHPで時間を操作する方法はありますか?

PHPで時間を操作する方法はありますか?

Apr 20, 2022 pm 04:24 PM
php

php には時間を操作する方法があります。 PHP は、豊富な日付と時刻の処理メソッドを提供します: 1. date()、ローカルの日付と時刻をフォーマットします; 2. mktime()、日付のタイムスタンプを返します; 3. idate()、ローカル時間を整数としてフォーマットします; 4. 、strtotime()、時刻文字列をタイムスタンプに変換するなど。

PHPで時間を操作する方法はありますか?

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php には次のメソッドがあります。稼働時間。

フォームの送信時刻、ユーザーのログイン時刻、データベース内のデータの更新と削除の時刻など、Web 開発では日付と時刻の使用と処理が不可欠です。これらの操作が実行された瞬間を記録したい場合は、日付と時刻まで記録する必要があります。

PHP は、豊富な日付と時刻の処理関数を提供します:

関数 説明
checkdate() グレゴリオ暦の日付を検証します。
date_add() 日付に日、月、年、時、分、秒を追加します。
date_create_from_format() 指定された形式に従ってフォーマットされた新しい DateTime オブジェクトを返します。
date_create() 新しい DateTime オブジェクトを返します。
date_date_set() 新しい日付を設定します。
date_default_timezone_get() すべての日付/時刻関数で使用されるデフォルトのタイムゾーンを返します。
date_default_timezone_set() すべての日付/時刻関数で使用されるデフォルトのタイムゾーンを設定します。
date_diff() 2 つの日付の差を返します。
date_format() 指定された形式に従ってフォーマットされた日付を返します。
date_get_last_errors() 警告/エラーを日付文字列で返します。
date_interval_create_from_date_string() 文字列の関連部分から DateInterval を作成します。
date_interval_format() 時間間隔をフォーマットします。
date_isodate_set() ISO 日付を設定します。
date_modify() タイムスタンプを変更します。
date_offset_get() タイム ゾーン オフセットを返します。
date_parse_from_format() 指定された形式に従って、指定された日付の詳細を含む連想配列を返します。
date_parse() 指定された日付の詳細を含む連想配列を返します。
date_sub() 指定された日付から日、月、年、時、分、秒を減算します。
date_sun_info() 指定された日付と場所の日の出/日の入り、夕暮れの開始/夕暮れの終わりに関する情報を含む配列を返します。
date_sunrise() 指定された日付と場所の日の出時刻を返します。
date_sunset() 指定された日付と場所の日没時刻を返します。
date_time_set() 時間を設定します。
date_timestamp_get() Unix タイムスタンプを返します。
date_timestamp_set() Unix タイムスタンプに基づいて日付と時刻を設定します。
date_timezone_get() 指定された DateTime オブジェクトのタイムゾーンを返します。
date_timezone_set() DateTime オブジェクトのタイムゾーンを設定します。
date() ローカルの日付と時刻をフォーマットします。
getdate() タイムスタンプの日付/時刻情報、または現在のローカル日付/時刻を返します。
gettimeofday() 現在の時刻を返します。
gmdate() GMT/UTC の日付と時刻をフォーマットします。
gmmktime() GMT 日付の UNIX タイムスタンプを返します。
gmstrftime() ロケール設定に従って GMT/UTC の日付と時刻をフォーマットします。
idate() 現地時間/日付を整数としてフォーマットします。
localtime() 現地時間を返します。
microtime() 現在の Unix タイムスタンプのマイクロ秒数を返します。
mktime() 日付の Unix タイムスタンプを返します。
strftime() ロケール設定に従って現地時間/日付をフォーマットします。
strptime() strftime() によって生成された時刻/日付を解析します。
strtotime() 英語のテキストの日付または時刻の説明を Unix タイムスタンプに解析します。
time() 現在の時刻の Unix タイムスタンプを返します。
timezone_abbreviations_list() 夏時間、オフセット、タイムゾーン名を含む連想配列を返します。
timezone_identifiers_list() すべてのタイムゾーン識別子を含む数値配列を返します。
timezone_location_get() 指定されたタイムゾーンの位置情報を返します。
timezone_name_from_ abbr() タイムゾーンの略語に基づいてタイムゾーン名を返します。
timezone_name_get() タイムゾーンの名前を返します。
timezone_offset_get() GMT を基準としたタイムゾーン オフセットを返します。
timezone_open() 新しい DateTimeZone オブジェクトを作成します。
timezone_transitions_get() タイムゾーンのすべての遷移を返します。
timezone_version_get() タイムゾーン データベースのバージョンを返します。

以下は、いくつかの時刻と日付の処理メソッドの簡単な紹介です:

1. PHP は現在時刻を取得します (5 つの方法)

In日付と時刻の関数では、UNIX タイムスタンプを取得することが非常に重要です。タイムスタンプは文字列であり、グリニッジ標準時 1970 年 1 月 1 日 00:00:00 (1970 年 1 月 1 日 08:00:00) からの時間を指します。 、北京時間)から現在の合計ミリ秒数。現在時刻を取得する関数をいくつか紹介します。

  • gmmktime()

gmmktime() 関数は、GMT 日付の UNIX タイムスタンプを取得します。構文は次のとおりです。

int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
ログイン後にコピー

この関数のパラメータは右から左に空のままにすることができ、空のパラメータは対応する現在の GMT 値に設定されます。

使用例は次のとおりです。

<?php
echo gmmktime();  //没有设置参数, 则默认取得当前GMT时间
echo gmmktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒
?>
ログイン後にコピー

上記のプログラムを実行した場合の出力結果は次のとおりです。

1467909956   1467852303
ログイン後にコピー
  • mktime()

mktime() は、日付の UNIX タイムスタンプを取得することもできます。構文は次のとおりです。

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
ログイン後にコピー

この関数は、指定されたパラメータに基づいて UNIX タイムスタンプを返します。タイムスタンプは、UNIX エポックから特定の時刻までの秒数を含む長整数です。

gmmktime() 関数と同様に、この関数のパラメータも右から左に省略できます。省略されたパラメータは、ローカルの日付と時刻の現在値に設定されます。

使用例は次のとおりです:

<?php
echo mktime();  // 没有设置参数则默认取得当前GMT时间
echo mktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒
?>
ログイン後にコピー

上記のプログラムを実行した結果の出力は次のとおりです:

1467910465 1467852303
ログイン後にコピー
  • #microtime()

microtime() は、現在の UNIX タイムスタンプとマイクロ秒を取得します。構文は次のとおりです:

mixed microtime ([ bool $get_as_float ] )
ログイン後にコピー

get_as_float パラメータ値を true に設定すると、microtime() は浮動小数点数を返します。パラメータがない場合は、「msec 秒」の文字列を返します。 format。sec は UNIX エポックです。今からの秒数です。msec はマイクロ秒の部分です。文字列の両方の部分が秒単位で返されます。

使用例は以下のとおりです。

<?php
echo microtime();  //返回 msec sec 格式字符串表示时间
echo "<br/>";
echo microtime(true);  //返回一个浮点型字符串表示时间
?>
ログイン後にコピー

上記プログラムを実行した場合の印刷結果は以下のとおりです。

0.40474900 1467910862
1467910862.4048
ログイン後にコピー

  • time()

time() 関数は、現在の UNIX タイムスタンプを返します。

int time ( void )
ログイン後にコピー

time() 関数の構文は比較的単純ですが、使用例は次のとおりです:


<?php
echo time();
?>
ログイン後にコピー

上記プログラムの実行結果の出力

1467911104
ログイン後にコピー

  • getdate()

getdate() は日付と時刻の情報を取得できます。構文は次のとおりです。

array getdate ([ int $timestamp = time() ] )
ログイン後にコピー

この関数は、タイムスタンプに基づいた日付情報を含む連想配列を返します。タイムスタンプが指定されていない場合は、現在の現地時間とみなされます (これは time() 関数と同じ値です)。

返される連想配列のキー名の単位は表のとおりです。

getdate() 関数は連想配列のキー名を返しますキー名説明戻り値例秒 秒数は、0 ~ 59分 分 数字は 0 ~ 59 時間 時間の数字は 0 ~ 23# を表します##mday wdaymonyearydayweekdaymonth0 です。

getdate() 函数的使用示例如下:

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump(getdate());
?>
ログイン後にコピー

执行以上程序的打印结果如下:

array(11) {
    ["seconds"]=>int(57)
    ["minutes"]=>int(18)
    ["hours"]=>int(17)
    ["mday"]=>int(7)
    ["wday"]=>int(4)
    ["mon"]=>int(7)
    ["year"]=>int(2016)
    ["yday"]=>int(188)
    ["weekday"]=>string(8) "Thursday"
    ["month"]=>string(4) "July"
    [0]=>int(1467911937)
}
ログイン後にコピー

2、strtotime()与mktime():日期转时间戳

  • strtotime() 函数

使用 strtotime() 函数可以将任何字符串类型的日期/时间转换为 UNIX 时间戳,其语法格式如下:

strtotime($time [,$now = time()])
ログイン後にコピー

其中 $time 为表示时间/日期的字符串,例如“2020-01-01”;$now 为可选参数,用来计算返回值的时间戳。函数执行成功会返回指定的字符串,执行失败返回 FALSE。

另外需要注意的是,如果使用两位数字表示年份的话,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 则表示 1970 ~ 2000。

【示例】使用 strtotime() 函数获取指定时间的时间戳。

<?php
    echo &#39;当前的时间戳是:&#39;.time().&#39;<br>&#39;;
    echo &#39;使用“now”获取当前的时间戳:&#39;.strtotime(&#39;now&#39;).&#39;<br>&#39;;
    echo &#39;2000-09-10 的时间戳是:&#39;.strtotime("10 September 2000").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一天:&#39;.strtotime("+1 day").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周:&#39;.strtotime("+1 week").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周两天四小时两分钟:&#39;.strtotime("+1 week 2 days 4 hours 2 seconds").&#39;<br>&#39;;
    echo &#39;下一个周四的时间戳:&#39;.strtotime("next Thursday").&#39;<br>&#39;;
    echo &#39;上一个周一的时间戳:&#39;.strtotime("last Monday").&#39;<br>&#39;;
?>
ログイン後にコピー

运行结果如下:

当前的时间戳是:1585273874
使用“now”获取当前的时间戳:1585273874
2000-09-10 的时间戳是:968515200
在当前的时间戳上加一天:1585360274
在当前的时间戳上加一周:1585878674
在当前的时间戳上加一周两天四小时两分钟:1586065876
下一个周四的时间戳:1585756800
上一个周一的时间戳:1584892800
ログイン後にコピー

注意:根据具体时间的变化,程序每次运行的结果略有不同。

  • mktime() 函数

除了 strtotime() 函数外,我们还可以使用 PHP 中的 mktime() 函数来获取指定日期的 UNIX 时间戳,该函数的语法格式如下:

mktime ([$hour = date("H") [, $minute = date("i") [, $second = date("s") [, $month = date("n") [, $day = date("j") [, $year = date("Y") [, $is_dst = -1 ]]]]]]])
ログイン後にコピー

参数说明如下:

  • $hour:表示一天中经过的小时数。如果 $hour 为负值,则表示前一天的适当时间;如果 $hour 大于 23,则表示第二天的适当时间。

  • $minute:表示一个小时内经过的分钟数。如果 $minute 为负值,则表示前一小时适当的分钟数;如果 $minute 大于 59,则表示下一小时中的适当分钟数。

  • $second:表示一分钟内经过的秒数。如果 $second 为负值,则表示前一分钟内的适当秒数;如果 $second 大于59,则表示下一分钟内的适当秒数。

  • $month:表示一年中经过的月份数,取值范围在 1 到 12 之间。如果 $month 小于 1(包括负值),则表示上一年的适当月份;如果 $month 大于 12,则表示下一年的适当月份。

  • $day:表示一个月中经过的天数,取值范围在 1 到 31 之间(取决于具体月份的天数)。如果 $day 小于 1(包括负值),则表示上个月的适当天数,比如 0 表示上个月的最后一天,-1 表示上个月的倒数第二天等等;如果 $day 大于本月的最大天数,则表示下个月的适当日期。

  • $year:表示具体的年份,可以是两位或四位数字,0 ~ 69 对应 2000 ~ 2069 年,70 ~ 100 对应 1970 ~ 2000年。在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下,$year 的合法范围是 1901 到 2038 之间,不过此限制自 PHP5.1.0 起已被克服了。

  • $is_dst:本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。不过本参数在 PHP5.1.0 中已被废弃,并在 PHP7.0.0 中移除。

提示:mktime() 函数中的参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果省略函数的所有参数,那么 mktime() 函数会和 time() 函数一样,返回当前的时间戳。

【示例】使用 mktime() 函数获取指定时间的时间戳。

<?php
    $time1 = time();
    echo &#39;当前的时间戳是:&#39;.$time1.&#39;<br>&#39;;
    $time2 = mktime(0, 0, 0, 3, 26, 20);
    echo &#39;2020-03-26 00:00:00 的时间戳是:&#39;.$time2.&#39;<br>&#39;;
    $time3 = mktime();
    echo &#39;省略函数的所有参数,获得的时间戳是:&#39;.$time3.&#39;<br>&#39;;
    $time4 = mktime(-1, -20, 6, 3, 26, 2020);
    echo &#39;2020-03-25 22:40:06 的时间戳是:&#39;.$time4.&#39;<br>&#39;;
?>
ログイン後にコピー

运行结果如下:

当前的时间戳是:1585216256
2020-03-26 00:00:00 的时间戳是:1585152000
省略函数的所有参数,获得的时间戳是:1585216256
2020-03-25 22:40:06 的时间戳是:1585147206
ログイン後にコピー

推荐学习:《PHP视频教程

以上がPHPで時間を操作する方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles
を表します。
月の日の数字は週を表します 1 ~ 31
真ん中の日の数字は、0 (日曜日) ~ 6 (土曜日)
を表します。月の番号は 1 から 12
4 桁で表される完全な年を表します例: 1999 または 2019
その年の日を表す数値0 ~ 365
その日の完全なテキスト表現 月曜日から日曜日まで
月の完全なテキスト表現(1 月や 4 月など) 1 月から 12 月まで
UNIX エポックからの秒数 (time の戻り値と同様) () と date() に使用される値 システムに依存し、通常の値は -2147483648 ~ 2147483647