検索
ホームページバックエンド開発PHPの問題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视频教程

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

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境