php には時間を操作する方法があります。 PHP は、豊富な日付と時刻の処理メソッドを提供します: 1. date()、ローカルの日付と時刻をフォーマットします; 2. mktime()、日付のタイムスタンプを返します; 3. idate()、ローカル時間を整数としてフォーマットします; 4. 、strtotime()、時刻文字列をタイムスタンプに変換するなど。
#このチュートリアルの動作環境: 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() 関数は、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() は、日付の 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() は、現在の 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() 関数は、現在の UNIX タイムスタンプを返します。
int time ( void ) ログイン後にコピー
time() 関数の構文は比較的単純ですが、使用例は次のとおりです:
<?php
echo time();
?> ログイン後にコピー
上記プログラムの実行結果の出力
getdate() は日付と時刻の情報を取得できます。構文は次のとおりです。
array getdate ([ int $timestamp = time() ] ) ログイン後にコピー
この関数は、タイムスタンプに基づいた日付情報を含む連想配列を返します。タイムスタンプが指定されていない場合は、現在の現地時間とみなされます (これは time() 関数と同じ値です)。
返される連想配列のキー名の単位は表のとおりです。
getdate() 関数は連想配列のキー名を返しますキー名 説明 戻り値例 秒 秒数は、 0 ~ 59 分を表します。 分 数字は 0 ~ 59 時間 時間の数字は 0 ~ 23# を表します ##mday月の日の数字は週を表します 1 ~ 31 wday 真ん中の日の数字は、 0 (日曜日) ~ 6 (土曜日) mon を表します。月の番号は 1 から 12 year4 桁で表される完全な年を表します 例: 1999 または 2019 ydayその年の日を表す数値 0 ~ 365 weekday その日の完全なテキスト表現 月曜日から日曜日まで month月の完全なテキスト表現(1 月や 4 月など) 1 月から 12 月まで 0UNIX エポックからの秒数 (time の戻り値と同様) () と date() に使用される値 システムに依存し、通常の値は -2147483648 ~ 2147483647 です。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() 函数可以将任何字符串类型的日期/时间转换为 UNIX 时间戳,其语法格式如下:
strtotime($time [,$now = time()]) ログイン後にコピー
其中 $time 为表示时间/日期的字符串,例如“2020-01-01”;$now 为可选参数,用来计算返回值的时间戳。函数执行成功会返回指定的字符串,执行失败返回 FALSE。
另外需要注意的是,如果使用两位数字表示年份的话,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 则表示 1970 ~ 2000。
【示例】使用 strtotime() 函数获取指定时间的时间戳。
<?php
echo '当前的时间戳是:'.time().'<br>';
echo '使用“now”获取当前的时间戳:'.strtotime('now').'<br>';
echo '2000-09-10 的时间戳是:'.strtotime("10 September 2000").'<br>';
echo '在当前的时间戳上加一天:'.strtotime("+1 day").'<br>';
echo '在当前的时间戳上加一周:'.strtotime("+1 week").'<br>';
echo '在当前的时间戳上加一周两天四小时两分钟:'.strtotime("+1 week 2 days 4 hours 2 seconds").'<br>';
echo '下一个周四的时间戳:'.strtotime("next Thursday").'<br>';
echo '上一个周一的时间戳:'.strtotime("last Monday").'<br>';
?> ログイン後にコピー
运行结果如下:
当前的时间戳是:1585273874
使用“now”获取当前的时间戳:1585273874
2000-09-10 的时间戳是:968515200
在当前的时间戳上加一天:1585360274
在当前的时间戳上加一周:1585878674
在当前的时间戳上加一周两天四小时两分钟:1586065876
下一个周四的时间戳:1585756800
上一个周一的时间戳:1584892800 ログイン後にコピー
注意:根据具体时间的变化,程序每次运行的结果略有不同。
除了 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 '当前的时间戳是:'.$time1.'<br>';
$time2 = mktime(0, 0, 0, 3, 26, 20);
echo '2020-03-26 00:00:00 的时间戳是:'.$time2.'<br>';
$time3 = mktime();
echo '省略函数的所有参数,获得的时间戳是:'.$time3.'<br>';
$time4 = mktime(-1, -20, 6, 3, 26, 2020);
echo '2020-03-25 22:40:06 的时间戳是:'.$time4.'<br>';
?> ログイン後にコピー
运行结果如下:
当前的时间戳是:1585216256
2020-03-26 00:00:00 的时间戳是:1585152000
省略函数的所有参数,获得的时间戳是:1585216256
2020-03-25 22:40:06 的时间戳是:1585147206 ログイン後にコピー
推荐学习:《PHP视频教程 》
以上がPHPで時間を操作する方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
CakePHP プロジェクトの構成
Sep 10, 2024 pm 05:25 PM
この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。
CakePHP の日付と時刻
Sep 10, 2024 pm 05:27 PM
Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。
CakePHP ファイルのアップロード
Sep 10, 2024 pm 05:27 PM
ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。
CakePHP ルーティング
Sep 10, 2024 pm 05:25 PM
この章では、ルーティングに関連する次のトピックを学習します。
CakePHP について話し合う
Sep 10, 2024 pm 05:28 PM
CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
CakePHP バリデータの作成
Sep 10, 2024 pm 05:26 PM
Validator は、コントローラーに次の 2 行を追加することで作成できます。
See all articles