示例#1
0
function _sqlite_func_year($d)
{
    return date("Y", _sqlite_func_unix_timestamp($d));
}
/**
 * version optimisee et memoizee de date() utilisee par
 * _sqlite_func_year, _sqlite_func_month, _sqlite_func_dayofmonth
 *
 * @param string $quoi
 *   format : Y, m, ou d
 * @param int $d
 *   timestamp
 * @return int
 */
function _sqlite_func_date($quoi, $d)
{
    static $mem = array();
    static $n = 0;
    if (isset($mem[$d])) {
        return $mem[$d][$quoi];
    }
    if ($n++ > 100) {
        $mem = array();
        $n = 0;
    }
    $dec = date("Y-m-d", _sqlite_func_unix_timestamp($d));
    $mem[$d] = array("Y" => substr($dec, 0, 4), "m" => substr($dec, 5, 2), "d" => substr($dec, 8, 2));
    return $mem[$d][$quoi];
}
示例#3
0
/**
 * Nombre de jour entre 0000-00-00 et $d
 * http://doc.spip.org/@_sqlite_func_to_days
 * cf http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_to-days
 * @param string $d
 * @return int
 */
function _sqlite_func_to_days ($d) {
    $offset = 719528; // nb de jour entre 0000-00-00 et timestamp 0=1970-01-01
	$result = $offset+(int)ceil(_sqlite_func_unix_timestamp($d)/(24*3600));
	#spip_log("Passage avec TO_DAYS : $d, $result",'debug');
	return $result;
}