【问题标题】:DateTime Serialization Returning incorrect Minutes SYMFONY 3DateTime 序列化返回不正确的分钟 SYMFONY 3
【发布时间】:2016-06-07 22:26:59
【问题描述】:

我有一个问题(再次抱歉我的英语不好)

所以我在 JSON 上使用 Symfony 3 创建了一个 API,它正在工作,但是 DateTime 数据没有正确返回。

我的意思是,只有小时被正确返回,但分钟不是

这是我的实体,Horaire.php

<?php

namespace CBMedBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\Type;

/**
* Horaire
*
* @ORM\Table(name="horaire")
* @ORM\Entity(repositoryClass="CBMedBundle\Repository\HoraireRepository")
* 
* @ExclusionPolicy("all")
*/
class Horaire
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var time
 *
 * @ORM\Column(name="Debut", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $debut;

/**
 * @var time
 *
 * @ORM\Column(name="EntreeSalle", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $entreeSalle;

/**
 * @var time
 *
 * @ORM\Column(name="HeureAnesthesie", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $heureAnesthesie;

/**
 * @var time
 *
 * @ORM\Column(name="Operation", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $operation;

/**
 * @var time
 *
 * @ORM\Column(name="incision", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $incision;

/**
 * @var time
 *
 * @ORM\Column(name="finOpe", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $finOpe;

/**
 * @var time
 *
 * @ORM\Column(name="Reveil", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $reveil;

/**
 * @var time
 *
 * @ORM\Column(name="Sortie", type="time", length=10)
 * @Type("DateTime<'h-m-s'>")
  * @Expose
 */
private $sortie;

 /**
 * @ORM\OneToOne(targetEntity="CBMedBundle\Entity\Interventions", cascade=   {"persist"})
* @Expose
*/
private $Interventions;
//
etc....

如你所见,我使用了JMS\Serializer\Annotation\

我指出 DateTime 类型是这种格式@Type("DateTime&lt;'h-m-s'&gt;")

这就是我用 POSTMAN 测试我的 API 时得到的结果

我在 phpmyAdmin 上的真实数据

我每分钟都有“01”

请问我该如何解决?

【问题讨论】:

  • 格式不应该是小时-分钟-秒吗???你在哪里设置日月年,看不懂法语...
  • 哦,确实很抱歉,这是分钟,不是月
  • 我编辑了我的帖子,但还是有问题

标签: php json datetime serialization symfony


【解决方案1】:

试试这个注释:

@Type("DateTime<'H:i:s'>")

请看看这显示了什么。这是基于 PHP DateTime 格式的。

【讨论】:

  • 谢谢,它有效!很高兴再次见到您,Alvin Bunk 爵士!
猜你喜欢
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 2020-05-25
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多