C:\xampp\phpMyAdmin\vendor\twig\extensions\lib\Twig\Extensions\Extension\Date.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php

/**
 * This file is part of Twig.
 *
 * (c) 2014 Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use Symfony\Component\Translation\TranslatorInterface;

/**
 * @author Robin van der Vleuten <robinvdvleuten@gmail.com>
 */
class Twig_Extensions_Extension_Date extends Twig_Extension
{
    public static 
$units = array(
        
'y' => 'year',
        
'm' => 'month',
        
'd' => 'day',
        
'h' => 'hour',
        
'i' => 'minute',
        
's' => 'second',
    );

    
/**
     * @var TranslatorInterface
     */
    
private $translator;

    public function 
__construct(TranslatorInterface $translator null)
    {
        
$this->translator $translator;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getFilters()
    {
        return array(
            new 
Twig_SimpleFilter('time_diff', array($this'diff'), array('needs_environment' => true)),
        );
    }

    
/**
     * Filter for converting dates to a time ago string like Facebook and Twitter has.
     *
     * @param Twig_Environment $env  a Twig_Environment instance
     * @param string|DateTime  $date a string or DateTime object to convert
     * @param string|DateTime  $now  A string or DateTime object to compare with. If none given, the current time will be used.
     *
     * @return string the converted time
     */
    
public function diff(Twig_Environment $env$date$now null)
    {
        
// Convert both dates to DateTime instances.
        
$date twig_date_converter($env$date);
        
$now twig_date_converter($env$now);

        
// Get the difference between the two DateTime objects.
        
$diff $date->diff($now);

        
// Check for each interval if it appears in the $diff object.
        
foreach (self::$units as $attribute => $unit) {
            
$count $diff->$attribute;

            if (
!== $count) {
                return 
$this->getPluralizedInterval($count$diff->invert$unit);
            }
        }

        return 
'';
    }

    protected function 
getPluralizedInterval($count$invert$unit)
    {
        if (
$this->translator) {
            
$id sprintf('diff.%s.%s'$invert 'in' 'ago'$unit);

            return 
$this->translator->transChoice($id$count, array('%count%' => $count), 'date');
        }

        if (
!== $count) {
            
$unit .= 's';
        }

        return 
$invert "in $count $unit"$count $unit ago";
    }

    
/**
     * {@inheritdoc}
     */
    
public function getName()
    {
        return 
'date';
    }
}

class_alias('Twig_Extensions_Extension_Date''Twig\Extensions\DateExtension'false);
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586