PageRenderTime 18ms CodeModel.GetById 13ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/gespac/config/PEAR/MDB2/Date.php

http://gespac.googlecode.com/
PHP | 183 lines | 37 code | 17 blank | 129 comment | 0 complexity | af81dd360b2d2d09f8c978214b06a553 MD5 | raw file
  1<?php
  2// +----------------------------------------------------------------------+
  3// | PHP versions 4 and 5                                                 |
  4// +----------------------------------------------------------------------+
  5// | Copyright (c) 1998-2006 Manuel Lemos, Tomas V.V.Cox,                 |
  6// | Stig. S. Bakken, Lukas Smith                                         |
  7// | All rights reserved.                                                 |
  8// +----------------------------------------------------------------------+
  9// | MDB2 is a merge of PEAR DB and Metabases that provides a unified DB  |
 10// | API as well as database abstraction for PHP applications.            |
 11// | This LICENSE is in the BSD license style.                            |
 12// |                                                                      |
 13// | Redistribution and use in source and binary forms, with or without   |
 14// | modification, are permitted provided that the following conditions   |
 15// | are met:                                                             |
 16// |                                                                      |
 17// | Redistributions of source code must retain the above copyright       |
 18// | notice, this list of conditions and the following disclaimer.        |
 19// |                                                                      |
 20// | Redistributions in binary form must reproduce the above copyright    |
 21// | notice, this list of conditions and the following disclaimer in the  |
 22// | documentation and/or other materials provided with the distribution. |
 23// |                                                                      |
 24// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
 25// | Lukas Smith nor the names of his contributors may be used to endorse |
 26// | or promote products derived from this software without specific prior|
 27// | written permission.                                                  |
 28// |                                                                      |
 29// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
 30// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
 31// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
 32// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
 33// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
 34// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
 35// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
 36// |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
 37// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
 38// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
 39// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
 40// | POSSIBILITY OF SUCH DAMAGE.                                          |
 41// +----------------------------------------------------------------------+
 42// | Author: Lukas Smith <smith@pooteeweet.org>                           |
 43// +----------------------------------------------------------------------+
 44//
 45// $Id: Date.php,v 1.10 2006/03/01 12:15:32 lsmith Exp $
 46//
 47
 48/**
 49 * @package  MDB2
 50 * @category Database
 51 * @author   Lukas Smith <smith@pooteeweet.org>
 52 */
 53
 54/**
 55 * Several methods to convert the MDB2 native timestamp format (ISO based)
 56 * to and from data structures that are convenient to worth with in side of php.
 57 * For more complex date arithmetic please take a look at the Date package in PEAR
 58 *
 59 * @package MDB2
 60 * @category Database
 61 * @author  Lukas Smith <smith@pooteeweet.org>
 62 */
 63class MDB2_Date
 64{
 65    // {{{ mdbNow()
 66
 67    /**
 68     * return the current datetime
 69     *
 70     * @return string current datetime in the MDB2 format
 71     * @access public
 72     */
 73    function mdbNow()
 74    {
 75        return date('Y-m-d H:i:s');
 76    }
 77    // }}}
 78
 79    // {{{ mdbToday()
 80
 81    /**
 82     * return the current date
 83     *
 84     * @return string current date in the MDB2 format
 85     * @access public
 86     */
 87    function mdbToday()
 88    {
 89        return date('Y-m-d');
 90    }
 91    // }}}
 92
 93    // {{{ mdbTime()
 94
 95    /**
 96     * return the current time
 97     *
 98     * @return string current time in the MDB2 format
 99     * @access public
100     */
101    function mdbTime()
102    {
103        return date('H:i:s');
104    }
105    // }}}
106
107    // {{{ date2Mdbstamp()
108
109    /**
110     * convert a date into a MDB2 timestamp
111     *
112     * @param int hour of the date
113     * @param int minute of the date
114     * @param int second of the date
115     * @param int month of the date
116     * @param int day of the date
117     * @param int year of the date
118     *
119     * @return string a valid MDB2 timestamp
120     * @access public
121     */
122    function date2Mdbstamp($hour = null, $minute = null, $second = null,
123        $month = null, $day = null, $year = null)
124    {
125        return MDB2_Date::unix2Mdbstamp(mktime($hour, $minute, $second, $month, $day, $year, -1));
126    }
127    // }}}
128
129    // {{{ unix2Mdbstamp()
130
131    /**
132     * convert a unix timestamp into a MDB2 timestamp
133     *
134     * @param int a valid unix timestamp
135     *
136     * @return string a valid MDB2 timestamp
137     * @access public
138     */
139    function unix2Mdbstamp($unix_timestamp)
140    {
141        return date('Y-m-d H:i:s', $unix_timestamp);
142    }
143    // }}}
144
145    // {{{ mdbstamp2Unix()
146
147    /**
148     * convert a MDB2 timestamp into a unix timestamp
149     *
150     * @param int a valid MDB2 timestamp
151     * @return string unix timestamp with the time stored in the MDB2 format
152     *
153     * @access public
154     */
155    function mdbstamp2Unix($mdb_timestamp)
156    {
157        $arr = MDB2_Date::mdbstamp2Date($mdb_timestamp);
158
159        return mktime($arr['hour'], $arr['minute'], $arr['second'], $arr['month'], $arr['day'], $arr['year'], -1);
160    }
161    // }}}
162
163    // {{{ mdbstamp2Date()
164
165    /**
166     * convert a MDB2 timestamp into an array containing all
167     * values necessary to pass to php's date() function
168     *
169     * @param int a valid MDB2 timestamp
170     *
171     * @return array with the time split
172     * @access public
173     */
174    function mdbstamp2Date($mdb_timestamp)
175    {
176        list($arr['year'], $arr['month'], $arr['day'], $arr['hour'], $arr['minute'], $arr['second']) =
177            sscanf($mdb_timestamp, "%04u-%02u-%02u %02u:%02u:%02u");
178        return $arr;
179    }
180    // }}}
181}
182
183?>