РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
140 of 258 menu

Поле datetime

Поле datetime создаётся в сущности через атрибут ORM\Column с типом datetime. Оно хранит дату и время в формате Y-m-d H:i:s. Значением поля в PHP-коде выступает объект DateTime или DateTimeImmutable. Первым параметром в атрибут передаётся тип поля, а именованные параметры задают дополнительные настройки: nullable, unique, options и другие.

Синтаксис

#[ORM\Column(type: 'datetime', options: [])]

Пример

Давайте создадим сущность Article с полем createdAt типа datetime:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] #[ORMTable(name: 'articles')] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'string', length: 255)] private string $title; #[ORMColumn(type: 'datetime')] private DateTime $createdAt; public function getId(): ?int { return $this->id; } public function getTitle(): string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } public function getCreatedAt(): DateTime { return $this->createdAt; } public function setCreatedAt(DateTime $createdAt): self { $this->createdAt = $createdAt; return $this; } } ?>

Пример

Давайте запишем объект с текущей датой и временем:

<?php namespace AppController; use AppEntityArticle; use DateTime; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/create', name: 'article_create')] public function create(EntityManagerInterface $em): Response { $article = new Article(); $article->setTitle('article'); $article->setCreatedAt(new DateTime('2024-01-15 10:30:00')); $em->persist($article); $em->flush(); return new Response('created'); } } ?>

Результат выполнения кода:

"created"

Пример

Давайте прочитаем значение поля и выведем его в формате d.m.Y H:i:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/show/{id}', name: 'article_show')] public function show(int $id, EntityManagerInterface $em): Response { $article = $em->getRepository(Article::class)->find($id); return new Response( $article->getCreatedAt()->format('d.m.Y H:i') ); } } ?>

Результат выполнения кода:

"15.01.2024 10:30"

Смотрите также

  • поле date,
    которое хранит только дату без времени
  • поле time,
    которое хранит только время без даты
  • поле datetime_immutable,
    которое хранит неизменяемую дату и время
  • поле datetimetz,
    которое хранит дату и время с часовым поясом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить