Ignore:
Timestamp:
2013/08/28 13:26:44 (11 years ago)
Author:
m_uehara
Message:

#2275
影響が大きいため、2.13.0では対応を行わない r23125 r23128 r23133 を差し戻します。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/data/module/Calendar/Engine/UnixTS.php

    r23125 r23141  
    11<?php 
    22/* vim: set expandtab tabstop=4 shiftwidth=4: */ 
    3  
     3// 
     4// +----------------------------------------------------------------------+ 
     5// | PHP Version 4                                                        | 
     6// +----------------------------------------------------------------------+ 
     7// | Copyright (c) 1997-2002 The PHP Group                                | 
     8// +----------------------------------------------------------------------+ 
     9// | This source file is subject to version 2.02 of the PHP license,      | 
     10// | that is bundled with this package in the file LICENSE, and is        | 
     11// | available at through the world-wide-web at                           | 
     12// | http://www.php.net/license/3_0.txt.                                  | 
     13// | If you did not receive a copy of the PHP license and are unable to   | 
     14// | obtain it through the world-wide-web, please send a note to          | 
     15// | license@php.net so we can mail you a copy immediately.               | 
     16// +----------------------------------------------------------------------+ 
     17// | Authors: Harry Fuecks <hfuecks@phppatterns.com>                      | 
     18// +----------------------------------------------------------------------+ 
     19// 
     20// $Id: UnixTS.php,v 1.9 2004/08/20 20:00:55 quipo Exp $ 
     21// 
    422/** 
    5  * Contains the Calendar_Engine_UnixTS class 
    6  * 
    7  * PHP versions 4 and 5 
    8  * 
    9  * LICENSE: Redistribution and use in source and binary forms, with or without 
    10  * modification, are permitted provided that the following conditions are met: 
    11  * 1. Redistributions of source code must retain the above copyright 
    12  *    notice, this list of conditions and the following disclaimer. 
    13  * 2. Redistributions in binary form must reproduce the above copyright 
    14  *    notice, this list of conditions and the following disclaimer in the 
    15  *    documentation and/or other materials provided with the distribution. 
    16  * 3. The name of the author may not be used to endorse or promote products 
    17  *    derived from this software without specific prior written permission. 
    18  * 
    19  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED 
    20  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
    21  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
    22  * IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY 
    23  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
    24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
    25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
    26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
    28  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    29  * 
    30  * @category  Date and Time 
    31  * @package   Calendar 
    32  * @author    Harry Fuecks <hfuecks@phppatterns.com> 
    33  * @copyright 2003-2007 Harry Fuecks 
    34  * @license   http://www.debian.org/misc/bsd.license  BSD License (3 Clause) 
    35  * @version   CVS: $Id: UnixTS.php 269074 2008-11-15 21:21:42Z quipo $ 
    36  * @link      http://pear.php.net/package/Calendar 
     23 * @package Calendar 
     24 * @version $Id: UnixTS.php,v 1.9 2004/08/20 20:00:55 quipo Exp $ 
    3725 */ 
    38  
    3926/** 
    4027 * Performs calendar calculations based on the PHP date() function and 
    4128 * Unix timestamps (using PHP's mktime() function). 
    42  * 
    43  * @category  Date and Time 
    44  * @package   Calendar 
    45  * @author    Harry Fuecks <hfuecks@phppatterns.com> 
    46  * @copyright 2003-2007 Harry Fuecks 
    47  * @license   http://www.debian.org/misc/bsd.license  BSD License (3 Clause) 
    48  * @link      http://pear.php.net/package/Calendar 
    49  * @access    protected 
     29 * @package Calendar 
     30 * @access protected 
    5031 */ 
    5132class Calendar_Engine_UnixTS /* implements Calendar_Engine_Interface */ 
     
    6849     * Uses a static variable to prevent date() being used twice 
    6950     * for a date which is already known 
    70      * 
    71      * @param int $stamp Unix timestamp 
    72      * 
     51     * @param int Unix timestamp 
    7352     * @return array 
    7453     * @access protected 
     
    7857        static $stamps = array(); 
    7958        if ( !isset($stamps[$stamp]) ) { 
    80             $date = @date('Y n j H i s t W w', $stamp); 
     59            $date = @date('Y n j H i s t W w',$stamp); 
    8160            $stamps[$stamp] = sscanf($date, "%d %d %d %d %d %d %d %d %d"); 
    8261        } 
     
    8665    /** 
    8766     * Returns a numeric year given a timestamp 
    88      * 
    89      * @param int $stamp Unix timestamp 
    90      * 
     67     * @param int Unix timestamp 
    9168     * @return int year (e.g. 2003) 
    9269     * @access protected 
     
    10077    /** 
    10178     * Returns a numeric month given a timestamp 
    102      * 
    103      * @param int $stamp Unix timestamp 
    104      * 
     79     * @param int Unix timestamp 
    10580     * @return int month (e.g. 9) 
    10681     * @access protected 
     
    11489    /** 
    11590     * Returns a numeric day given a timestamp 
    116      * 
    117      * @param int $stamp Unix timestamp 
    118      * 
     91     * @param int Unix timestamp 
    11992     * @return int day (e.g. 15) 
    12093     * @access protected 
     
    128101    /** 
    129102     * Returns a numeric hour given a timestamp 
    130      * 
    131      * @param int $stamp Unix timestamp 
    132      * 
     103     * @param int Unix timestamp 
    133104     * @return int hour (e.g. 13) 
    134105     * @access protected 
     
    142113    /** 
    143114     * Returns a numeric minute given a timestamp 
    144      * 
    145      * @param int $stamp Unix timestamp 
    146      * 
     115     * @param int Unix timestamp 
    147116     * @return int minute (e.g. 34) 
    148117     * @access protected 
     
    156125    /** 
    157126     * Returns a numeric second given a timestamp 
    158      * 
    159      * @param int $stamp Unix timestamp 
    160      * 
     127     * @param int Unix timestamp 
    161128     * @return int second (e.g. 51) 
    162129     * @access protected 
     
    170137    /** 
    171138     * Returns a timestamp 
    172      * 
    173      * @param int $y year (2003) 
    174      * @param int $m month (9) 
    175      * @param int $d day (13) 
    176      * @param int $h hour (13) 
    177      * @param int $i minute (34) 
    178      * @param int $s second (53) 
    179      * 
     139     * @param int year (2003) 
     140     * @param int month (9) 
     141     * @param int day (13) 
     142     * @param int hour (13) 
     143     * @param int minute (34) 
     144     * @param int second (53) 
    180145     * @return int Unix timestamp 
    181146     * @access protected 
     
    184149    { 
    185150        static $dates = array(); 
    186         if (!isset($dates[$y][$m][$d][$h][$i][$s])) { 
     151        if ( !isset($dates[$y][$m][$d][$h][$i][$s]) ) { 
    187152            $dates[$y][$m][$d][$h][$i][$s] = @mktime($h, $i, $s, $m, $d, $y); 
    188153        } 
     
    192157    /** 
    193158     * The upper limit on years that the Calendar Engine can work with 
    194      * 
    195159     * @return int (2037) 
    196160     * @access protected 
     
    203167    /** 
    204168     * The lower limit on years that the Calendar Engine can work with 
    205      * 
    206169     * @return int (1970 if it's Windows and 1902 for all other OSs) 
    207170     * @access protected 
     
    214177    /** 
    215178     * Returns the number of months in a year 
    216      * 
    217      * @param int $y year 
    218      * 
    219179     * @return int (12) 
    220      * @access protected 
     180    * @access protected 
    221181     */ 
    222182    function getMonthsInYear($y=null) 
     
    227187    /** 
    228188     * Returns the number of days in a month, given year and month 
    229      * 
    230      * @param int $y year (2003) 
    231      * @param int $m month (9) 
    232      * 
     189     * @param int year (2003) 
     190     * @param int month (9) 
    233191     * @return int days in month 
    234192     * @access protected 
     
    236194    function getDaysInMonth($y, $m) 
    237195    { 
    238         $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m, 1); 
    239         $date  = Calendar_Engine_UnixTS::stampCollection($stamp); 
     196        $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,1); 
     197        $date = Calendar_Engine_UnixTS::stampCollection($stamp); 
    240198        return $date[6]; 
    241199    } 
     
    244202     * Returns numeric representation of the day of the week in a month, 
    245203     * given year and month 
    246      * 
    247      * @param int $y year (2003) 
    248      * @param int $m month (9) 
    249      * 
     204     * @param int year (2003) 
     205     * @param int month (9) 
    250206     * @return int from 0 to 6 
    251207     * @access protected 
     
    253209    function getFirstDayInMonth($y, $m) 
    254210    { 
    255         $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m, 1); 
    256         $date  = Calendar_Engine_UnixTS::stampCollection($stamp); 
     211        $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,1); 
     212        $date = Calendar_Engine_UnixTS::stampCollection($stamp); 
    257213        return $date[8]; 
    258214    } 
     
    260216    /** 
    261217     * Returns the number of days in a week 
    262      * 
    263      * @param int $y year (2003) 
    264      * @param int $m month (9) 
    265      * @param int $d day (4) 
    266      * 
     218     * @param int year (2003) 
     219     * @param int month (9) 
     220     * @param int day (4) 
    267221     * @return int (7) 
    268222     * @access protected 
    269223     */ 
    270     function getDaysInWeek($y=null, $m=null, $d=null) 
     224    function getDaysInWeek($y=NULL, $m=NULL, $d=NULL) 
    271225    { 
    272226        return 7; 
     
    275229    /** 
    276230     * Returns the number of the week in the year (ISO-8601), given a date 
    277      * 
    278      * @param int $y year (2003) 
    279      * @param int $m month (9) 
    280      * @param int $d day (4) 
    281      * 
     231     * @param int year (2003) 
     232     * @param int month (9) 
     233     * @param int day (4) 
    282234     * @return int week number 
    283235     * @access protected 
     
    285237    function getWeekNInYear($y, $m, $d) 
    286238    { 
    287         $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m, $d); 
    288         $date  = Calendar_Engine_UnixTS::stampCollection($stamp); 
     239        $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,$d); 
     240        $date = Calendar_Engine_UnixTS::stampCollection($stamp); 
    289241        return $date[7]; 
    290242    } 
     
    292244    /** 
    293245     * Returns the number of the week in the month, given a date 
    294      * 
    295      * @param int $y        year (2003) 
    296      * @param int $m        month (9) 
    297      * @param int $d        day (4) 
    298      * @param int $firstDay first day of the week (default: monday) 
    299      * 
     246     * @param int year (2003) 
     247     * @param int month (9) 
     248     * @param int day (4) 
     249     * @param int first day of the week (default: monday) 
    300250     * @return int week number 
    301251     * @access protected 
     
    303253    function getWeekNInMonth($y, $m, $d, $firstDay=1) 
    304254    { 
    305         $weekEnd = (0 == $firstDay) ? $this->getDaysInWeek()-1 : $firstDay-1; 
     255        $weekEnd = ($firstDay == 0) ? $this->getDaysInWeek()-1 : $firstDay-1; 
    306256        $end_of_week = 1; 
    307257        while (@date('w', @mktime(0, 0, 0, $m, $end_of_week, $y)) != $weekEnd) { 
     
    318268    /** 
    319269     * Returns the number of weeks in the month 
    320      * 
    321      * @param int $y        year (2003) 
    322      * @param int $m        month (9) 
    323      * @param int $firstDay first day of the week (default: monday) 
    324      * 
     270     * @param int year (2003) 
     271     * @param int month (9) 
     272     * @param int first day of the week (default: monday) 
    325273     * @return int weeks number 
    326274     * @access protected 
    327275     */ 
    328     function getWeeksInMonth($y, $m, $firstDay = 1) 
     276    function getWeeksInMonth($y, $m, $firstDay=1) 
    329277    { 
    330278        $FDOM = $this->getFirstDayInMonth($y, $m); 
     
    346294    /** 
    347295     * Returns the number of the day of the week (0=sunday, 1=monday...) 
    348      * 
    349      * @param int $y year (2003) 
    350      * @param int $m month (9) 
    351      * @param int $d day (4) 
    352      * 
     296     * @param int year (2003) 
     297     * @param int month (9) 
     298     * @param int day (4) 
    353299     * @return int weekday number 
    354300     * @access protected 
     
    356302    function getDayOfWeek($y, $m, $d) 
    357303    { 
    358         $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m, $d); 
     304        $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,$d); 
    359305        $date = Calendar_Engine_UnixTS::stampCollection($stamp); 
    360306        return $date[8]; 
     
    363309    /** 
    364310     * Returns a list of integer days of the week beginning 0 
    365      * 
    366      * @param int $y year (2003) 
    367      * @param int $m month (9) 
    368      * @param int $d day (4) 
    369      * 
     311     * @param int year (2003) 
     312     * @param int month (9) 
     313     * @param int day (4) 
    370314     * @return array (0,1,2,3,4,5,6) 1 = Monday 
    371315     * @access protected 
    372316     */ 
    373     function getWeekDays($y=null, $m=null, $d=null) 
     317    function getWeekDays($y=NULL, $m=NULL, $d=NULL) 
    374318    { 
    375319        return array(0, 1, 2, 3, 4, 5, 6); 
     
    378322    /** 
    379323     * Returns the default first day of the week 
    380      * 
    381      * @param int $y year (2003) 
    382      * @param int $m month (9) 
    383      * @param int $d day (4) 
    384      * 
     324     * @param int year (2003) 
     325     * @param int month (9) 
     326     * @param int day (4) 
    385327     * @return int (default 1 = Monday) 
    386328     * @access protected 
    387329     */ 
    388     function getFirstDayOfWeek($y=null, $m=null, $d=null) 
     330    function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL) 
    389331    { 
    390332        return 1; 
     
    393335    /** 
    394336     * Returns the number of hours in a day 
    395      * 
    396      * @param int $y year (2003) 
    397      * @param int $m month (9) 
    398      * @param int $d day (4) 
    399      * 
    400337     * @return int (24) 
    401338     * @access protected 
    402339     */ 
    403     function getHoursInDay($y=null, $m=null, $d=null) 
     340    function getHoursInDay($y=null,$m=null,$d=null) 
    404341    { 
    405342        return 24; 
     
    408345    /** 
    409346     * Returns the number of minutes in an hour 
    410      * 
    411      * @param int $y year (2003) 
    412      * @param int $m month (9) 
    413      * @param int $d day (4) 
    414      * @param int $h hour 
    415      * 
    416347     * @return int (60) 
    417348     * @access protected 
    418349     */ 
    419     function getMinutesInHour($y=null, $m=null, $d=null, $h=null) 
     350    function getMinutesInHour($y=null,$m=null,$d=null,$h=null) 
    420351    { 
    421352        return 60; 
     
    424355    /** 
    425356     * Returns the number of seconds in a minutes 
    426      * 
    427      * @param int $y year (2003) 
    428      * @param int $m month (9) 
    429      * @param int $d day (4) 
    430      * @param int $h hour 
    431      * @param int $i minute 
    432      * 
    433357     * @return int (60) 
    434358     * @access protected 
    435359     */ 
    436     function getSecondsInMinute($y=null, $m=null, $d=null, $h=null, $i=null) 
     360    function getSecondsInMinute($y=null,$m=null,$d=null,$h=null,$i=null) 
    437361    { 
    438362        return 60; 
    439     } 
    440  
    441     /** 
    442      * Checks if the given day is the current day 
    443      * 
    444      * @param mixed $stamp Any timestamp format recognized by Pear::Date 
    445      * 
    446      * @return boolean 
    447      * @access protected 
    448      */ 
    449     function isToday($stamp) 
    450     { 
    451         static $today = null; 
    452         if (is_null($today)) { 
    453             $today_date = @date('Y n j'); 
    454             $today = sscanf($today_date, '%d %d %d'); 
    455         } 
    456         $date = Calendar_Engine_UnixTS::stampCollection($stamp); 
    457         return (   $date[2] == $today[2] 
    458                 && $date[1] == $today[1] 
    459                 && $date[0] == $today[0] 
    460         ); 
    461363    } 
    462364} 
Note: See TracChangeset for help on using the changeset viewer.