日付形式、タイムゾーン、閏年、日付が異なる月など、日付と時刻を処理する際には考慮すべき点がたくさんあります。自分で使用する必要があります。 PHP 5.2.0 で導入された DateTime 、 DateIntervel クラス、および DateTimeZone クラスは、日付、時刻、タイム ゾーンの作成と処理に役立ちます。
デフォルトのタイムゾーンを設定します
まず、PHP で日付と時刻を処理する関数のデフォルトのタイムゾーンを設定する必要があります。設定されていない場合、PHP は表示します。 E_WARNING メッセージを設定します。デフォルトのタイムゾーンを設定するには 2 つの方法があり、次のように php.ini で設定できます:
date.timezone = 'Asia/Shanghai';
date_default_timezone_set() 関数を使用して実行時に設定することもできます。
<?phpdate_default_timezone_set('Asia/Shanghai');
これら 2 つの方法では、どちらの方法でも有効なタイム ゾーン識別子を使用する必要があります。PHP の完全なタイム ゾーン識別子は、http://php.net/manual/zh/timezones.php で確認できます。 >
DateTime クラス
DateTime クラスは、日付と時刻を管理するためのオブジェクト指向インターフェイスを提供します。DateTime インスタンスは、特定の日付と時刻を表す最も簡単な方法です。新しい DateTime インスタンスを作成するには:
<?php$datetime = new DateTime();パラメーターがない場合、DateTime クラスのコンストラクターは現在の日付と時刻を表すインスタンスを作成します。 DateTime クラスのコンストラクターに文字列を渡して日付と時刻を指定できます。
<?php$datetime = new DateTime('2016-06-06 10:00 pm');
注: 渡される文字列パラメーターは、有効な日付と時刻の形式 (http: //php.net/manual/zh/datetime.formats.php)
理想的には、PHP が理解できる日付と時刻の形式を指定しますが、常にそうとは限りません。この場合、DateTime が提供する静的メソッド createFromFormat を使用して DateTime インスタンスを作成できます。このメソッドの最初のパラメータは、日付と時刻の形式を表す文字列です。 2 番目のパラメータは、この形式を使用する日付と時刻の文字列です。
<?php$datetime = DateTime::createFromFormat('M j, Y H:i:s', 'June 6, 2016 22:00:00');
注: ご存知かもしれませんが、DateTime::createFromFormat は date 関数に似ています。使用可能な日付と時刻の形式は次の場所にあります: http://php.net/manual/zh/datetime.createfromformat.php
DateInterval class
DateTime の処理 インスタンスを使用する前に、DateInterval クラスを理解する必要があります。DateInterval インスタンスは、固定長の期間 (2 日など) または相対的な期間 (昨日など) を表します。このクラスの DateTime インスタンスを変更します。たとえば、DateTime は、DateTime インスタンスを処理するための add メソッドと sub メソッドを提供します。これら 2 つのメソッドのパラメータは、DateTime に加算または減算される時間を表す DateInterval インスタンスです。DateInterval インスタンスをインスタンス化するためにコンストラクターを使用します。DateInterval コンストラクターのパラメーターは、文字 P で始まり、その後に整数、最後にピリオドが続く時間間隔の一致を表す文字列です。識別子。前の整数を制限します。有効な期間識別子は次のとおりです。
- Y (年)
- M (月)
- D (日)
- W (週)
- H (時間)
- M (分)
- S (秒)
次の例は、add メソッドを使用して、DateTime インスタンスによって表される日付と時刻を一定期間だけ戻す方法を示しています。
<?php//创建DateTime实例$datetime = new DateTime('2016-06-06 22:00:00');//创建长度为两天的间隔$interval = new DateInterval('P2D');//修改DateTime实例$datetime->add($interval);echo $datetime->format('Y-m-d H:i:s');逆の DateInterval を作成することもできます。インスタンス:
<?php$datetime = new DateTime();$interval = DateInterval::createFromDateString('-1 day');$period = new DatePeriod($datetime, $interval, 3);foreach ($period as $date) { echo $date->format('Y-m-d'), PHP_EOL;}上記のコードの出力は次のとおりです:
2016-06-062016-06-052016-06-042016-06-03
DateTimeZone クラス
PHP は DateTimeZone クラスを使用して有効なタイム ゾーンを識別するだけで済みます。シンボルは DateTimeZone クラスのコンストラクターに渡されます。
<?php$timezone = new DateTimeZone('Asia/Shanghai');DateTime インスタンスを作成するには、通常、2 番目の DateTimeZone インスタンスを使用する必要があります。 DateTime クラス コンストラクターのパラメーター (オプション) は DateTimeZone インスタンスです。このパラメーターを渡した後、DateTime インスタンスの値とこの値へのすべての変更は、この指定されたタイム ゾーンに基づいて設定されます。以前は使用されます:
<?php$timezone = new DateTimeZone('Asia/Shanghai');$datetime = new DateTime('2016-06-06', $timezone);インスタンス化後に setTimezone を使用して、DateTime インスタンスのタイムゾーンを変更するメソッド:
<?php$timezone = new DateTimeZone('Asia/Shanghai');$datetime = new DateTime('2016-06-06', $timezone);$datetime->setTimezone(new DateTimeZone('Asia/Hong_kong'));
DatePeriod クラス
一定期間内に繰り返し現れる一連の日付と時刻を繰り返し処理する必要がある場合、DatePeriod クラスはこの問題を解決するために (以前に使用されています)、DatePeriod クラスのコンストラクターは 3 つのパラメーターを受け入れます。すべてを指定する必要があります:
- 一个DateTime实例,表示迭代开始的日期和时间
- 一个DateInterval实例,表示下一个日期和时间的间隔
- 一个整数,表示迭代的总次数
DatePeriod是迭代器,每次迭代都会产出一个DateTime实例。DatePeriod的第四个参数是可选的,用于显式指定周期的结束日期和时间,如果迭代时想要排除开始日期和时间,可以把构造方法的最后一个参数设为 DatePeriod::EXCLUDE_START_DATE常量:
<?php$datetime = new DateTime();$interval = new DateInterval('P2D');$period = new DatePeriod($datetime, $interval, 3, DatePeriod::EXCLUDE_START_DATE);foreach ($period as $date) { echo $date->format('Y-m-d H:i:s'), PHP_EOL;}
打印的结果是:
2016-06-082016-06-102016-06-12
nesbot/carbon日期组件
如果经常需要处理日期和时间,应该使用 nesbot/carbon组件( https://github.com/briannesbitt/Carbon),Laravel框架也是使用了这个组件处理日期和时间,该组件集成了常用的日期及时间处理API,其底层正是使用了我们上面提到的几个日期时间处理类实现了各种功能,有兴趣可以去研究下。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
