Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Component\Mime\Header;
13
 
14
/**
15
 * A Date MIME Header.
16
 *
17
 * @author Chris Corbyn
18
 */
19
final class DateHeader extends AbstractHeader
20
{
21
    private \DateTimeImmutable $dateTime;
22
 
23
    public function __construct(string $name, \DateTimeInterface $date)
24
    {
25
        parent::__construct($name);
26
 
27
        $this->setDateTime($date);
28
    }
29
 
30
    /**
31
     * @param \DateTimeInterface $body
32
     */
33
    public function setBody(mixed $body)
34
    {
35
        $this->setDateTime($body);
36
    }
37
 
38
    public function getBody(): \DateTimeImmutable
39
    {
40
        return $this->getDateTime();
41
    }
42
 
43
    public function getDateTime(): \DateTimeImmutable
44
    {
45
        return $this->dateTime;
46
    }
47
 
48
    /**
49
     * Set the date-time of the Date in this Header.
50
     *
51
     * If a DateTime instance is provided, it is converted to DateTimeImmutable.
52
     */
53
    public function setDateTime(\DateTimeInterface $dateTime)
54
    {
55
        if ($dateTime instanceof \DateTime) {
56
            $immutable = new \DateTimeImmutable('@'.$dateTime->getTimestamp());
57
            $dateTime = $immutable->setTimezone($dateTime->getTimezone());
58
        }
59
        $this->dateTime = $dateTime;
60
    }
61
 
62
    public function getBodyAsString(): string
63
    {
64
        return $this->dateTime->format(\DateTime::RFC2822);
65
    }
66
}