| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
DateTime ArithmeticThe following examples show some pitfalls of DateTime arithmetic with regard to DST transitions and months having different numbers of days.
例1 DateTime::add/sub add intervals which cover elapsed time Adding PT24H over a DST transition will appear to add 23/25 hours (for most timezones).
<?php 上の例の出力は以下となります。 Start: 2015-11-01 00:00:00 -04:00 End: 2015-11-01 02:00:00 -05:00
例2 DateTime::modify and strtotime increment or decrement individual component values Adding +24 hours over a DST transition will add exactly 24 hours as seen in the date/time string (unless the start or end time is on a transition point).
<?php 上の例の出力は以下となります。 Start: 2015-11-01 00:00:00 -04:00 End: 2015-11-02 00:00:00 -05:00
例3 Adding or subtracting times can over- or underflow dates Like where January 31st + 1 month will result in March 2nd (leap year) or 3rd (normal year).
<?php 上の例の出力は以下となります。 Normal year: Start: 2015-01-31 00:00:00 -05:00 End: 2015-03-03 00:00:00 -05:00 Leap year: Start: 2016-01-31 00:00:00 -05:00 End: 2016-03-02 00:00:00 -05:00 To get the last day of the next month (i.e. to prevent the overflow), the last day of format is available as of PHP 5.3.0.
<?php 上の例の出力は以下となります。 Normal year: Start: 2015-01-31 00:00:00 -05:00 End: 2015-02-28 00:00:00 -05:00 Leap year: Start: 2016-01-31 00:00:00 -05:00 End: 2016-02-29 00:00:00 -05:00 |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「DateTime Arithmetic」をGoogle検索
|