wp/wp-includes/SimplePie/Parse/Date.php
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 17:39:30 +0200
changeset 7 cf61fcea0001
parent 0 d970ebf37754
child 16 a86126ab1dd4
permissions -rw-r--r--
resynchronize code repo with production
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * SimplePie
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * A PHP-Based RSS and Atom Feed Framework.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * Takes the hard work out of managing a complete RSS/Atom solution.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * All rights reserved.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 * Redistribution and use in source and binary forms, with or without modification, are
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
 * permitted provided that the following conditions are met:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
 * 	* Redistributions of source code must retain the above copyright notice, this list of
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
 * 	  conditions and the following disclaimer.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
 * 	* Redistributions in binary form must reproduce the above copyright notice, this list
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
 * 	  of conditions and the following disclaimer in the documentation and/or other materials
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
 * 	  provided with the distribution.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
 * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
 * 	  to endorse or promote products derived from this software without specific prior
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
 * 	  written permission.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
 * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
 * POSSIBILITY OF SUCH DAMAGE.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
 * @package SimplePie
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
 * @version 1.3.1
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
 * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
 * @author Ryan Parman
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
 * @author Geoffrey Sneddon
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
 * @author Ryan McCue
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
 * @link http://simplepie.org/ SimplePie
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
 * @license http://www.opensource.org/licenses/bsd-license.php BSD License
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
 * Date Parser
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
 * @package SimplePie
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
 * @subpackage Parsing
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
class SimplePie_Parse_Date
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	 * Input data
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
	 * @var string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	var $date;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
	 * List of days, calendar day name => ordinal day number in the week
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
	var $day = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
		// English
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
		'mon' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
		'monday' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
		'tue' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
		'tuesday' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
		'wed' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
		'wednesday' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
		'thu' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
		'thursday' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
		'fri' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
		'friday' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
		'sat' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
		'saturday' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
		'sun' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
		'sunday' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
		// Dutch
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
		'maandag' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		'dinsdag' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
		'woensdag' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
		'donderdag' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
		'vrijdag' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
		'zaterdag' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
		'zondag' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
		// French
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
		'lundi' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
		'mardi' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
		'mercredi' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
		'jeudi' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
		'vendredi' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
		'samedi' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
		'dimanche' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
		// German
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
		'montag' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
		'dienstag' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
		'mittwoch' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
		'donnerstag' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
		'freitag' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
		'samstag' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
		'sonnabend' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
		'sonntag' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
		// Italian
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
		'lunedì' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
		'martedì' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
		'mercoledì' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
		'giovedì' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
		'venerdì' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
		'sabato' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
		'domenica' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
		// Spanish
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
		'lunes' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
		'martes' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
		'miércoles' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
		'jueves' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
		'viernes' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
		'sábado' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
		'domingo' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
		// Finnish
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
		'maanantai' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
		'tiistai' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
		'keskiviikko' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
		'torstai' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
		'perjantai' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
		'lauantai' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
		'sunnuntai' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
		// Hungarian
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
		'hétfő' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
		'kedd' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
		'szerda' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
		'csütörtok' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
		'péntek' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
		'szombat' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
		'vasárnap' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
		// Greek
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
		'Δευ' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
		'Τρι' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
		'Τετ' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
		'Πεμ' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
		'Παρ' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
		'Σαβ' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
		'Κυρ' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
	);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
	 * List of months, calendar month name => calendar month number
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
	var $month = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
		// English
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
		'jan' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
		'january' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
		'feb' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
		'february' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
		'mar' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
		'march' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
		'apr' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
		'april' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
		'may' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
		// No long form of May
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
		'jun' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
		'june' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
		'jul' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
		'july' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
		'aug' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
		'august' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
		'sep' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
		'september' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
		'oct' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
		'october' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
		'nov' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
		'november' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
		'dec' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
		'december' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
		// Dutch
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
		'januari' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
		'februari' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
		'maart' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
		'april' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
		'mei' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
		'juni' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
		'juli' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
		'augustus' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
		'september' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
		'oktober' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
		'november' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
		'december' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
		// French
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
		'janvier' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
		'février' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
		'mars' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
		'avril' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
		'mai' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
		'juin' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
		'juillet' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
		'août' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
		'septembre' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
		'octobre' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
		'novembre' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
		'décembre' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
		// German
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
		'januar' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
		'februar' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
		'märz' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
		'april' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
		'mai' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
		'juni' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
		'juli' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
		'august' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
		'september' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
		'oktober' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
		'november' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
		'dezember' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
		// Italian
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
		'gennaio' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
		'febbraio' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
		'marzo' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
		'aprile' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
		'maggio' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
		'giugno' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
		'luglio' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
		'agosto' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
		'settembre' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
		'ottobre' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
		'novembre' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
		'dicembre' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
		// Spanish
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
		'enero' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
		'febrero' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
		'marzo' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
		'abril' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
		'mayo' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
		'junio' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
		'julio' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
		'agosto' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
		'septiembre' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
		'setiembre' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
		'octubre' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
		'noviembre' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
		'diciembre' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
		// Finnish
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
		'tammikuu' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
		'helmikuu' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
		'maaliskuu' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
		'huhtikuu' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
		'toukokuu' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
		'kesäkuu' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
		'heinäkuu' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
		'elokuu' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
		'suuskuu' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
		'lokakuu' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
		'marras' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
		'joulukuu' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
		// Hungarian
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
		'január' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
		'február' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
		'március' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
		'április' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
		'május' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
		'június' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
		'július' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
		'augusztus' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
		'szeptember' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
		'október' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
		'november' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
		'december' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
		// Greek
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
		'Ιαν' => 1,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
		'Φεβ' => 2,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
		'Μάώ' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
		'Μαώ' => 3,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
		'Απρ' => 4,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
		'Μάι' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
		'Μαϊ' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
		'Μαι' => 5,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
		'Ιούν' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
		'Ιον' => 6,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
		'Ιούλ' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
		'Ιολ' => 7,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
		'Αύγ' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
		'Αυγ' => 8,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
		'Σεπ' => 9,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
		'Οκτ' => 10,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
		'Νοέ' => 11,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
		'Δεκ' => 12,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
	);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
	 * List of timezones, abbreviation => offset from UTC
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
	var $timezone = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
		'ACDT' => 37800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
		'ACIT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
		'ACST' => 34200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
		'ACT' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
		'ACWDT' => 35100,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
		'ACWST' => 31500,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
		'AEDT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
		'AEST' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
		'AFT' => 16200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
		'AKDT' => -28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
		'AKST' => -32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
		'AMDT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
		'AMT' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
		'ANAST' => 46800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
		'ANAT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
		'ART' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
		'AZOST' => -3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
		'AZST' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
		'AZT' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
		'BIOT' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
		'BIT' => -43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
		'BOT' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
		'BRST' => -7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
		'BRT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
		'BST' => 3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
		'BTT' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
		'CAST' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
		'CAT' => 7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
		'CCT' => 23400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
		'CDT' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
		'CEDT' => 7200,
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   334
		'CEST' => 7200,
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
		'CET' => 3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
		'CGST' => -7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
		'CGT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
		'CHADT' => 49500,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
		'CHAST' => 45900,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
		'CIST' => -28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
		'CKT' => -36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
		'CLDT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
		'CLST' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
		'COT' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
		'CST' => -21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
		'CVT' => -3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
		'CXT' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
		'DAVT' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
		'DTAT' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
		'EADT' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
		'EAST' => -21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
		'EAT' => 10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
		'ECT' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
		'EDT' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
		'EEST' => 10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
		'EET' => 7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
		'EGT' => -3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
		'EKST' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
		'EST' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
		'FJT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
		'FKDT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
		'FKST' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
		'FNT' => -7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
		'GALT' => -21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
		'GEDT' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
		'GEST' => 10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
		'GFT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
		'GILT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
		'GIT' => -32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
		'GST' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
		'GST' => -7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
		'GYT' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
		'HAA' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
		'HAC' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
		'HADT' => -32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
		'HAE' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
		'HAP' => -25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
		'HAR' => -21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
		'HAST' => -36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
		'HAT' => -9000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
		'HAY' => -28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
		'HKST' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
		'HMT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
		'HNA' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
		'HNC' => -21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
		'HNE' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
		'HNP' => -28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
		'HNR' => -25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
		'HNT' => -12600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
		'HNY' => -32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
		'IRDT' => 16200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
		'IRKST' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
		'IRKT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
		'IRST' => 12600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
		'JFDT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
		'JFST' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
		'JST' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
		'KGST' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
		'KGT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
		'KOST' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
		'KOVST' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
		'KOVT' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
		'KRAST' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
		'KRAT' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
		'KST' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
		'LHDT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
		'LHST' => 37800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
		'LINT' => 50400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
		'LKT' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
		'MAGST' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
		'MAGT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
		'MAWT' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
		'MDT' => -21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
		'MESZ' => 7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
		'MEZ' => 3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
		'MHT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
		'MIT' => -34200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
		'MNST' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
		'MSDT' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
		'MSST' => 10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
		'MST' => -25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
		'MUT' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
		'MVT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
		'MYT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
		'NCT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
		'NDT' => -9000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
		'NFT' => 41400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
		'NMIT' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
		'NOVST' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
		'NOVT' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
		'NPT' => 20700,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
		'NRT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
		'NST' => -12600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
		'NUT' => -39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
		'NZDT' => 46800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
		'NZST' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
		'OMSST' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
		'OMST' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
		'PDT' => -25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
		'PET' => -18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
		'PETST' => 46800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
		'PETT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
		'PGT' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
		'PHOT' => 46800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
		'PHT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
		'PKT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
		'PMDT' => -7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
		'PMST' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
		'PONT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
		'PST' => -28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
		'PWT' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
		'PYST' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
		'PYT' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
		'RET' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
		'ROTT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
		'SAMST' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
		'SAMT' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
		'SAST' => 7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
		'SBT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
		'SCDT' => 46800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
		'SCST' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
		'SCT' => 14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
		'SEST' => 3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
		'SGT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
		'SIT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
		'SRT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
		'SST' => -39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
		'SYST' => 10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
		'SYT' => 7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
		'TFT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
		'THAT' => -36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
		'TJT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
		'TKT' => -36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
		'TMT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
		'TOT' => 46800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
		'TPT' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
		'TRUT' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
		'TVT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
		'TWT' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
		'UYST' => -7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
		'UYT' => -10800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
		'UZT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
		'VET' => -14400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
		'VLAST' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
		'VLAT' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
		'VOST' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
		'VUT' => 39600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
		'WAST' => 7200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
		'WAT' => 3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
		'WDT' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
		'WEST' => 3600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
		'WFT' => 43200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
		'WIB' => 25200,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
		'WIT' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
		'WITA' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
		'WKST' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
		'WST' => 28800,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
		'YAKST' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
		'YAKT' => 32400,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
		'YAPT' => 36000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
		'YEKST' => 21600,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
		'YEKT' => 18000,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
	);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
	 * Cached PCRE for SimplePie_Parse_Date::$day
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
	 * @var string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
	var $day_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
	 * Cached PCRE for SimplePie_Parse_Date::$month
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
	 * @var string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
	var $month_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
	 * Array of user-added callback methods
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
	 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
	var $built_in = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
	 * Array of user-added callback methods
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
	 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
	var $user = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
	 * Create new SimplePie_Parse_Date object, and set self::day_pcre,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
	 * self::month_pcre, and self::built_in
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
	 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
	public function __construct()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
		$this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
		$this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
		static $cache;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
		if (!isset($cache[get_class($this)]))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
			$all_methods = get_class_methods($this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
			foreach ($all_methods as $method)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
				if (strtolower(substr($method, 0, 5)) === 'date_')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
				{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
					$cache[get_class($this)][] = $method;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
		foreach ($cache[get_class($this)] as $method)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
			$this->built_in[] = $method;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
	 * Get the object
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
	 * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
	public static function get()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
		static $object;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
		if (!$object)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
			$object = new SimplePie_Parse_Date;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
		return $object;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
	 * Parse a date
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
	 * @final
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
	 * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
	 * @param string $date Date to parse
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
	 * @return int Timestamp corresponding to date string, or false on failure
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
	public function parse($date)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
		foreach ($this->user as $method)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
			if (($returned = call_user_func($method, $date)) !== false)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
				return $returned;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
		foreach ($this->built_in as $method)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
			if (($returned = call_user_func(array($this, $method), $date)) !== false)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
				return $returned;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
		return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
	 * Add a callback method to parse a date
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
	 * @final
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
	 * @access public
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   617
	 * @param callable $callback
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
	public function add_callback($callback)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
		if (is_callable($callback))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
			$this->user[] = $callback;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
			trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
	 * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
	 * well as allowing any of upper or lower case "T", horizontal tabs, or
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
	 * spaces to be used as the time seperator (including more than one))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
	 * @return int Timestamp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
	public function date_w3cdtf($date)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
		static $pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
		if (!$pcre)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
			$year = '([0-9]{4})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
			$month = $day = $hour = $minute = $second = '([0-9]{2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
			$decimal = '([0-9]*)';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
			$zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
			$pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
		if (preg_match($pcre, $date, $match))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
			/*
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
			Capturing subpatterns:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
			1: Year
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
			2: Month
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
			3: Day
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
			4: Hour
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
			5: Minute
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
			6: Second
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
			7: Decimal fraction of a second
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
			8: Zulu
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
			9: Timezone ±
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
			10: Timezone hours
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
			11: Timezone minutes
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
			*/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
			// Fill in empty matches
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
			for ($i = count($match); $i <= 3; $i++)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
				$match[$i] = '1';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
			for ($i = count($match); $i <= 7; $i++)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
				$match[$i] = '0';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
			// Numeric timezone
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
			if (isset($match[9]) && $match[9] !== '')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
				$timezone = $match[10] * 3600;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
				$timezone += $match[11] * 60;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
				if ($match[9] === '-')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
				{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
					$timezone = 0 - $timezone;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
				$timezone = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
			// Convert the number of seconds to an integer, taking decimals into account
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
			$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
			return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
	 * Remove RFC822 comments
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
	 * @param string $data Data to strip comments from
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
	 * @return string Comment stripped string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
	public function remove_rfc2822_comments($string)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
		$string = (string) $string;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
		$position = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
		$length = strlen($string);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
		$depth = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
		$output = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
			$output .= substr($string, $position, $pos - $position);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
			$position = $pos + 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
			if ($string[$pos - 1] !== '\\')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
				$depth++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
				while ($depth && $position < $length)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
				{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
					$position += strcspn($string, '()', $position);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
					if ($string[$position - 1] === '\\')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
					{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
						$position++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
						continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
					}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
					elseif (isset($string[$position]))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
					{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
						switch ($string[$position])
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
						{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
							case '(':
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
								$depth++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
								break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
							case ')':
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
								$depth--;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
								break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
						}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
						$position++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
					}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
					else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
					{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
						break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
					}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
				$output .= '(';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
		$output .= substr($string, $position);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
		return $output;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
	 * Parse RFC2822's date format
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
	 * @return int Timestamp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
	public function date_rfc2822($date)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
		static $pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
		if (!$pcre)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
			$wsp = '[\x09\x20]';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
			$fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
			$optional_fws = $fws . '?';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
			$day_name = $this->day_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
			$month = $this->month_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
			$day = '([0-9]{1,2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
			$hour = $minute = $second = '([0-9]{2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
			$year = '([0-9]{2,4})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
			$num_zone = '([+\-])([0-9]{2})([0-9]{2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
			$character_zone = '([A-Z]{1,5})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
			$zone = '(?:' . $num_zone . '|' . $character_zone . ')';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
			$pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
		if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
			/*
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
			Capturing subpatterns:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
			1: Day name
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
			2: Day
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
			3: Month
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
			4: Year
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
			5: Hour
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
			6: Minute
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
			7: Second
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
			8: Timezone ±
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
			9: Timezone hours
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
			10: Timezone minutes
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
			11: Alphabetic timezone
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
			*/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
			// Find the month number
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
			$month = $this->month[strtolower($match[3])];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
			// Numeric timezone
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
			if ($match[8] !== '')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
				$timezone = $match[9] * 3600;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
				$timezone += $match[10] * 60;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
				if ($match[8] === '-')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
				{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
					$timezone = 0 - $timezone;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
			// Character timezone
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
			elseif (isset($this->timezone[strtoupper($match[11])]))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
				$timezone = $this->timezone[strtoupper($match[11])];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
			// Assume everything else to be -0000
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
				$timezone = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
			// Deal with 2/3 digit years
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
			if ($match[4] < 50)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
				$match[4] += 2000;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
			elseif ($match[4] < 1000)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
				$match[4] += 1900;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
			// Second is optional, if it is empty set it to zero
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
			if ($match[7] !== '')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
				$second = $match[7];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
				$second = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
			return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
	 * Parse RFC850's date format
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
	 * @return int Timestamp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
	public function date_rfc850($date)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
		static $pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
		if (!$pcre)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
			$space = '[\x09\x20]+';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
			$day_name = $this->day_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
			$month = $this->month_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
			$day = '([0-9]{1,2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
			$year = $hour = $minute = $second = '([0-9]{2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
			$zone = '([A-Z]{1,5})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
			$pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
		if (preg_match($pcre, $date, $match))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
			/*
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
			Capturing subpatterns:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
			1: Day name
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
			2: Day
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
			3: Month
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
			4: Year
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
			5: Hour
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
			6: Minute
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
			7: Second
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
			8: Timezone
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
			*/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
			// Month
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
			$month = $this->month[strtolower($match[3])];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
			// Character timezone
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
			if (isset($this->timezone[strtoupper($match[8])]))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
				$timezone = $this->timezone[strtoupper($match[8])];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
			// Assume everything else to be -0000
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
				$timezone = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
			// Deal with 2 digit year
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
			if ($match[4] < 50)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
				$match[4] += 2000;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
			{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
				$match[4] += 1900;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
			return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
	 * Parse C99's asctime()'s date format
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
	 * @return int Timestamp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
	public function date_asctime($date)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
		static $pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
		if (!$pcre)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
			$space = '[\x09\x20]+';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
			$wday_name = $this->day_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
			$mon_name = $this->month_pcre;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
			$day = '([0-9]{1,2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
			$hour = $sec = $min = '([0-9]{2})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
			$year = '([0-9]{4})';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
			$terminator = '\x0A?\x00?';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
			$pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   942
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   943
		if (preg_match($pcre, $date, $match))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   945
			/*
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   946
			Capturing subpatterns:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   947
			1: Day name
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   948
			2: Month
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   949
			3: Day
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   950
			4: Hour
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   951
			5: Minute
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   952
			6: Second
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   953
			7: Year
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   954
			*/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   955
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   956
			$month = $this->month[strtolower($match[2])];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   957
			return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   958
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   959
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   960
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   961
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   962
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   963
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   964
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   965
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
	 * Parse dates using strtotime()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
	 * @access protected
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
	 * @return int Timestamp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
	public function date_strtotime($date)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
		$strtotime = strtotime($date);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
		if ($strtotime === -1 || $strtotime === false)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
			return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   977
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   978
		else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   979
		{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   980
			return $strtotime;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   981
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   982
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   983
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   984