teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

修正

2017/03/02 10:36

投稿

san11
san11

スコア14

title CHANGED
File without changes
body CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
 
27
27
 
28
- ###下記の回答を参考にさせて頂き動作が確認出来ましたので記載致します。
28
+ ###下記の回答を参考にさせて頂き動作が確認出来ましたのでコードを記載致します。
29
29
 
30
30
  ```PHP
31
31
  //bootstrap.php
@@ -74,5 +74,7 @@
74
74
 
75
75
  ```PHP
76
76
  //ミリ秒まで取得
77
+ //debug()だとミリ秒まで表示されないがformat()で表示されました
78
+ //i18nFormatでも何故かミリ秒が表示されませんでした
77
79
  $item->created->format('Y-m-d H:i:s.u')
78
80
  ```

1

コード追記

2017/03/02 10:36

投稿

san11
san11

スコア14

title CHANGED
File without changes
body CHANGED
@@ -21,4 +21,58 @@
21
21
  PHP 7.1.2
22
22
  MariaDB 10.1.10
23
23
 
24
- よろしくお願い致します。
24
+ よろしくお願い致します。
25
+
26
+
27
+
28
+ ###下記の回答を参考にさせて頂き動作が確認出来ましたので記載致します。
29
+
30
+ ```PHP
31
+ //bootstrap.php
32
+ Type::map('dtm', 'App\Database\Type\DateTimeMilliType');
33
+ Type::build('dtm')
34
+ ->useImmutable();
35
+ ```
36
+
37
+ ```PHP
38
+ //DateTimeMilliType.php
39
+ namespace App\Database\Type;
40
+
41
+ use Cake\Database\Type\DateTimeType;
42
+ use Cake\Database\Driver;
43
+
44
+ class DateTimeMilliType extends DateTimeType {
45
+
46
+ protected $_format = 'Y-m-d H:i:s.u';
47
+
48
+ public function toPHP($value, Driver $driver) {
49
+ if ($value === null || strpos($value, '0000-00-00') === 0) {
50
+ return null;
51
+ }
52
+
53
+ if (strpos($value, '.') !== false) {
54
+ //list($value) = explode('.', $value);
55
+ }
56
+
57
+ $instance = clone $this->_datetimeInstance;
58
+ $tmp_obj = $instance->createFromFormat('Y-m-d H:i:s.u', $value);
59
+ return $tmp_obj;
60
+ }
61
+
62
+ }
63
+ ```
64
+
65
+ ```PHP
66
+ //table
67
+ protected function _initializeSchema(Schema $schema) {
68
+
69
+ $schema->columnType("modified", 'dtm');
70
+ $schema->columnType("created", 'dtm');
71
+ return $schema;
72
+ }
73
+ ```
74
+
75
+ ```PHP
76
+ //ミリ秒まで取得
77
+ $item->created->format('Y-m-d H:i:s.u')
78
+ ```