summaryrefslogtreecommitdiff
path: root/tests/unit/I18N/core/DateFormatTest.php
blob: d8350204145c9d91b1615273c421affad1105f0f (plain)
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
<?php


Prado::using('System.I18N.core.DateFormat');

/**
 * @package System.I18N.core
 */
class DateFormatTest extends PHPUnit_Framework_TestCase {

  public function testStandardPatterns() {
    $dateFormatter = new DateFormat();

    $time = @mktime(9, 9, 9, 9, 1, 2004);
    $zone = @date('T', $time);
    //var_dump(date('c',$time));
    //for ShortDatePattern  "M/d/yy"
    $this->assertEquals('9/1/04', $dateFormatter->format($time, 'd'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'d'))));

    //for LongDatePattern  "MMMM d, yyyy"
    $wants = 'September 1, 2004';
    $this->assertEquals($wants, $dateFormatter->format($time, 'D'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'D'))));

    //for Full date and time  "MMMM d, yyyy h:mm a"
    $wants = 'September 1, 2004 9:09 AM';
    $this->assertEquals($wants, $dateFormatter->format($time, 'f'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'f'))));

    //for FullDateTimePattern  "MMMM d, yyyy h:mm:ss a z"
    $wants = 'September 1, 2004 9:09:09 AM '.$zone;
    $this->assertEquals($wants, $dateFormatter->format($time, 'F'));

    //for General "M/d/yy h:mm a"
    $wants = '9/1/04 9:09 AM';
    $this->assertEquals($wants, $dateFormatter->format($time, 'g'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'g'))));

    //for General "M/d/yy h:mm:ss a z"
    $wants = '9/1/04 9:09:09 AM '.$zone;
    $this->assertEquals($wants, $dateFormatter->format($time, 'G'));

    //for MonthDayPattern  "MMMM dd" (invariant)
    $wants = 'September 01';
    $this->assertEquals($wants, $dateFormatter->format($time, 'm'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'m'))));

    //for RFC1123Pattern  "EEE, dd MMM yyyy HH:mm:ss" (invariant)
    $wants = 'Wed, 01 Sep 2004 09:09:09';
    $this->assertEquals($wants, $dateFormatter->format($time, 'r'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'r'))));

    //for SortableDateTimePattern "yyyy-MM-ddTHH:mm:ss" (invariant)
    $wants = '2004-09-01T09:09:09';
    $this->assertEquals($wants, $dateFormatter->format($time, 's'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'s'))));

    //for ShortTimePattern  "H:mm a"
    $wants = '9:09 AM';
    $this->assertEquals($wants, $dateFormatter->format($time, 't'));
    //(date('c',strtotime($dateFormatter->format($time,'t'))));

    //for LongTimePattern  "H:mm:ss a z"
    $wants = '9:09:09 AM '.$zone;
    $this->assertEquals($wants, $dateFormatter->format($time, 'T'));

    //for UniversalSortableDateTimePattern "yyyy-MM-dd HH:mm:ss z"
    //(invariant)
    $wants = '2004-09-01 09:09:09 '.$zone;
    $this->assertEquals($wants, $dateFormatter->format($time, 'u'));

    //for Full date and time  "EEEE dd MMMM yyyy HH:mm:ss" (invariant)
    $wants = 'Wednesday 01 September 2004 09:09:09';
    $this->assertEquals($wants, $dateFormatter->format($time, 'U'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'U'))));

    //for YearMonthPattern  "yyyy MMMM" (invariant)
    $wants = '2004 September';
    $this->assertEquals($wants, $dateFormatter->format($time, 'y'));
    //var_dump(date('c',strtotime($dateFormatter->format($time,'y'))));
  }

  public function testCustomPatterns() {
    $dateFormatter = new DateFormat();

    $time = @mktime(9, 9, 9, 9, 1, 2004);

    $pattern = "'Hello' EEEE, 'it should be' MMM yyyy HH:mm:ss!!!";
    $wants = 'Hello Wednesday, it should be Sep 2004 09:09:09!!!';
    $this->assertEquals($wants, $dateFormatter->format($time, $pattern));
  }
}