前提・実現したいこと
PHP7.3のDateTimeオブジェクトでマイクロ秒単位の計算を行いたいです。
そのためにDateTime->add/sub に渡すDateIntervalオブジェクトを作成しようとしていますが、
マイクロ秒の精度で作成する方法がわかりません。
DateIntervalオブジェクトにマイクロ秒を設定する方法や、
DateTimeオブジェクトで計算を行う他の方法、
DateTimeよりも日時の計算において使い勝手のいいライブラリがあればご教示頂きたいです。
発生している問題・エラーメッセージ
PHP Fatal error: Uncaught Exception: DateInterval::__construct(): Unknown or bad format (PT0.123456S) in /var/www/html/apps/controllers/a:4 Stack trace: #0 /var/www/html/apps/controllers/a(4): DateInterval->__construct('PT0.123456S') #1 {main} thrown in /var/www/html/apps/controllers/a on line 4
該当のソースコード
php
1<?php 2 3$date = new DateTime("2019-03-07T13:00:00.123456"); 4$interval = new DateInterval("PT0.123456S"); // 上記エラーが発生 5//$interval = new DateInterval("PT123456F"); // あてずっぽうに指定するもエラー 6var_dump($interval); // ["f"]=>float(0.123456) が表示されてほしい 7var_dump($date->sub($interval)); // "2019-03-07T13:00:00.000000" が表示されてほしい
試したこと
公式のマニュアルで対応するPeriod Designatorを確認するも見つからず、
Examplesのvar_dumpの出力にマイクロ秒のフィールドが無いことからマニュアルが古そうだと思い質問しました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/07 07:21