Ser*_*gri 5 php mysql datetime symfony doctrine-orm
我有一个实体,其中有一列"datetime"类型来存储时间戳.
Run Code Online (Sandbox Code Playgroud)/** * @ORM\Column(type="datetime") */ protected $timestamp;
我有MySQL 5.5.40,我发现它不存储微秒.所以我切换到5.6.21并导入了所有表格和数据.
我试图将类型声明为
Run Code Online (Sandbox Code Playgroud)* @ORM\Column(type="datetime(6)")
但它给了我一个错误.所以我通过以下方式直接在DB中更改了它:
Run Code Online (Sandbox Code Playgroud)ALTER TABLE symfony.hrmgmt MODIFY timestamp DATETIME(6);
在我的控制器中我这样做:
Run Code Online (Sandbox Code Playgroud)$dt = new \DateTime('now'); $newHREvent->setTimestamp($dt);
但是,时间戳存储的时间没有秒.
我可以(现在)通过SQL手动输入带小数值的datetime,但是当我通过我的控制器执行它时,它总是以.000000存储
我想这是因为Doctrine不知道它也可以存储微秒.
我的PHP版本仍然是5.4.34.
谢谢!
要创建微秒的日期时间,您必须DateTime::createFromFormat在控制器中使用
$date = \DateTime::createFromFormat('U.u', (string)microtime(true));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2412 次 |
| 最近记录: |