亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adodb-time.inc.php

?? 類似youtube的視頻分享網站源碼。有后臺管理系統及模板
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php
/**
ADOdb Date Library, part of the ADOdb abstraction library
Download: http://php.weblogs.com/adodb_date_time_library

PHP native date functions use integer timestamps for computations.
Because of this, dates are restricted to the years 1901-2038 on Unix 
and 1970-2038 on Windows due to integer overflow for dates beyond 
those years. This library overcomes these limitations by replacing the 
native function's signed integers (normally 32-bits) with PHP floating 
point numbers (normally 64-bits).

Dates from 100 A.D. to 3000 A.D. and later
have been tested. The minimum is 100 A.D. as <100 will invoke the
2 => 4 digit year conversion. The maximum is billions of years in the 
future, but this is a theoretical limit as the computation of that year 
would take too long with the current implementation of adodb_mktime().

This library replaces native functions as follows:

<pre>	
	getdate()  with  adodb_getdate()
	date()     with  adodb_date() 
	gmdate()   with  adodb_gmdate()
	mktime()   with  adodb_mktime()
	gmmktime() with  adodb_gmmktime()45
</pre>
	
The parameters are identical, except that adodb_date() accepts a subset
of date()'s field formats. Mktime() will convert from local time to GMT, 
and date() will convert from GMT to local time, but daylight savings is 
not handled currently.

This library is independant of the rest of ADOdb, and can be used
as standalone code.

PERFORMANCE

For high speed, this library uses the native date functions where
possible, and only switches to PHP code when the dates fall outside 
the 32-bit signed integer range.

GREGORIAN CORRECTION

Pope Gregory shortened October of A.D. 1582 by ten days. Thursday, 
October 4, 1582 (Julian) was followed immediately by Friday, October 15, 
1582 (Gregorian). 

Since 0.06, we handle this correctly, so:

adodb_mktime(0,0,0,10,15,1582) - adodb_mktime(0,0,0,10,4,1582) 
	== 24 * 3600 (1 day)

=============================================================================

COPYRIGHT

(c) 2003 John Lim and released under BSD-style license except for code by jackbbs,
which includes adodb_mktime, adodb_get_gmt_different, adodb_is_leap_year
and originally found at http://www.php.net/manual/en/function.mktime.php

=============================================================================

BUG REPORTS

These should be posted to the ADOdb forums at

	http://phplens.com/lens/lensforum/topics.php?id=4

=============================================================================

FUNCTION DESCRIPTIONS


FUNCTION adodb_getdate($date=false)

Returns an array containing date information, as getdate(), but supports
dates greater than 1901 to 2038.


FUNCTION adodb_date($fmt, $timestamp = false)

Convert a timestamp to a formatted local date. If $timestamp is not defined, the
current timestamp is used. Unlike the function date(), it supports dates
outside the 1901 to 2038 range.

The format fields that adodb_date supports:

<pre>
a - "am" or "pm" 
A - "AM" or "PM" 
d - day of the month, 2 digits with leading zeros; i.e. "01" to "31" 
D - day of the week, textual, 3 letters; e.g. "Fri" 
F - month, textual, long; e.g. "January" 
g - hour, 12-hour format without leading zeros; i.e. "1" to "12" 
G - hour, 24-hour format without leading zeros; i.e. "0" to "23" 
h - hour, 12-hour format; i.e. "01" to "12" 
H - hour, 24-hour format; i.e. "00" to "23" 
i - minutes; i.e. "00" to "59" 
j - day of the month without leading zeros; i.e. "1" to "31" 
l (lowercase 'L') - day of the week, textual, long; e.g. "Friday"  
L - boolean for whether it is a leap year; i.e. "0" or "1" 
m - month; i.e. "01" to "12" 
M - month, textual, 3 letters; e.g. "Jan" 
n - month without leading zeros; i.e. "1" to "12" 
O - Difference to Greenwich time in hours; e.g. "+0200" 
r - RFC 822 formatted date; e.g. "Thu, 21 Dec 2000 16:01:07 +0200" 
s - seconds; i.e. "00" to "59" 
S - English ordinal suffix for the day of the month, 2 characters; 
   			i.e. "st", "nd", "rd" or "th" 
t - number of days in the given month; i.e. "28" to "31"
T - Timezone setting of this machine; e.g. "EST" or "MDT" 
U - seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)  
w - day of the week, numeric, i.e. "0" (Sunday) to "6" (Saturday) 
Y - year, 4 digits; e.g. "1999" 
y - year, 2 digits; e.g. "99" 
z - day of the year; i.e. "0" to "365" 
Z - timezone offset in seconds (i.e. "-43200" to "43200"). 
   			The offset for timezones west of UTC is always negative, 
			and for those east of UTC is always positive. 
</pre>

Unsupported:
<pre>
B - Swatch Internet time 
I (capital i) - "1" if Daylight Savings Time, "0" otherwise.
W - ISO-8601 week number of year, weeks starting on Monday 

</pre>


FUNCTION adodb_gmdate($fmt, $timestamp = false)

Convert a timestamp to a formatted GMT date. If $timestamp is not defined, the
current timestamp is used. Unlike the function date(), it supports dates
outside the 1901 to 2038 range.


FUNCTION adodb_mktime($hr, $min, $sec, $month, $day, $year)

Converts a local date to a unix timestamp.  Unlike the function mktime(), it supports
dates outside the 1901 to 2038 range. Differs from mktime() in that all parameters
are currently compulsory.

FUNCTION adodb_gmmktime($hr, $min, $sec, $month, $day, $year)

Converts a gmt date to a unix timestamp.  Unlike the function gmmktime(), it supports
dates outside the 1901 to 2038 range. Differs from gmmktime() in that all parameters
are currently compulsory.

=============================================================================

NOTES

Useful url for generating test timestamps:
	http://www.4webhelp.net/us/timestamp.php

Possible future optimizations include 

a. Using an algorithm similar to Plauger's in "The Standard C Library" 
(page 428, xttotm.c _Ttotm() function). Plauger's algorithm will not 
work outside 32-bit signed range, so i decided not to implement it.

b. Iterate over a block of years (say 12) when searching for the 
correct year.

c. Implement daylight savings, which looks awfully complicated, see
	http://webexhibits.org/daylightsaving/


CHANGELOG
- 3 March 2003 0.08
Added support for 'S' adodb_date() format char. Added constant ADODB_ALLOW_NEGATIVE_TS
if you want PHP to handle negative timestamps between 1901 to 1969.

- 27 Feb 2003 0.07
All negative numbers handled by adodb now because of RH 7.3+ problems.
See http://bugs.php.net/bug.php?id=20048&edit=2

- 4 Feb 2003 0.06
Fixed a typo, 1852 changed to 1582! This means that pre-1852 dates
are now correctly handled.

- 29 Jan 2003 0.05

Leap year checking differs under Julian calendar (pre 1582). Also
leap year code optimized by checking for most common case first.

We also handle month overflow correctly in mktime (eg month set to 13).

Day overflow for less than one month's days is supported.

- 28 Jan 2003 0.04

Gregorian correction handled. In PHP5, we might throw an error if 
mktime uses invalid dates around 5-14 Oct 1582. Released with ADOdb 3.10.
Added limbo 5-14 Oct 1582 check, when we set to 15 Oct 1582.

- 27 Jan 2003 0.03

Fixed some more month problems due to gmt issues. Added constant ADODB_DATE_VERSION.
Fixed calculation of days since start of year for <1970. 

- 27 Jan 2003 0.02

Changed _adodb_getdate() to inline leap year checking for better performance.
Fixed problem with time-zones west of GMT +0000.

- 24 Jan 2003 0.01

First implementation.
*/


/* Initialization */

/*
	Version Number
*/
define('ADODB_DATE_VERSION',0.08);

/*
	We check for Windows as only +ve ints are accepted as dates on Windows.
	
	Apparently this problem happens also with Linux, RH 7.3 and later!
	
	glibc-2.2.5-34 and greater has been changed to return -1 for dates <
	1970.  This used to work.  The problem exists with RedHat 7.3 and 8.0
	echo (mktime(0, 0, 0, 1, 1, 1960));  // prints -1
	
	References:
	 http://bugs.php.net/bug.php?id=20048&edit=2
	 http://lists.debian.org/debian-glibc/2002/debian-glibc-200205/msg00010.html
*/

if (!defined('ADODB_ALLOW_NEGATIVE_TS')) define('ADODB_NO_NEGATIVE_TS',1);

function adodb_date_test_date($y1,$m)
{
	//print " $y1/$m ";
	$t = adodb_mktime(0,0,0,$m,13,$y1);
	if ("$y1-$m-13 00:00:00" != adodb_date('Y-n-d H:i:s',$t)) {
		print "<b>$y1 error</b><br>";
		return false;
	}
	return true;
}
/**
	 Test Suite
*/
function adodb_date_test()
{
	
	error_reporting(E_ALL);
	print "<h4>Testing adodb_date and adodb_mktime. version=".ADODB_DATE_VERSION. "</h4>";
	set_time_limit(0);
	$fail = false;
	
	// This flag disables calling of PHP native functions, so we can properly test the code
	if (!defined('ADODB_TEST_DATES')) define('ADODB_TEST_DATES',1);
	
	print "<p>Testing gregorian <=> julian conversion<p>";
	$t = adodb_mktime(0,0,0,10,11,1492);
	//http://www.holidayorigins.com/html/columbus_day.html - Friday check
	if (!(adodb_date('D Y-m-d',$t) == 'Fri 1492-10-11')) print 'Error in Columbus landing<br>';
	
	$t = adodb_mktime(0,0,0,2,29,1500);
	if (!(adodb_date('Y-m-d',$t) == '1500-02-29')) print 'Error in julian leap years<br>';
	
	$t = adodb_mktime(0,0,0,2,29,1700);
	if (!(adodb_date('Y-m-d',$t) == '1700-03-01')) print 'Error in gregorian leap years<br>';
	
	print  adodb_mktime(0,0,0,10,4,1582).' ';
	print adodb_mktime(0,0,0,10,15,1582);
	$diff = (adodb_mktime(0,0,0,10,15,1582) - adodb_mktime(0,0,0,10,4,1582));
	if ($diff != 3600*24) print " <b>Error in gregorian correction = ".($diff/3600/24)." days </b><br>";
		
	print " 15 Oct 1582, Fri=".(adodb_dow(1582,10,15) == 5 ? 'Fri' : '<b>Error</b>')."<br>";
	print " 4 Oct 1582, Thu=".(adodb_dow(1582,10,4) == 4 ? 'Thu' : '<b>Error</b>')."<br>";
	
	print "<p>Testing overflow<p>";
	
	$t = adodb_mktime(0,0,0,3,33,1965);
	if (!(adodb_date('Y-m-d',$t) == '1965-04-02')) print 'Error in day overflow 1 <br>';
	$t = adodb_mktime(0,0,0,4,33,1971);
	if (!(adodb_date('Y-m-d',$t) == '1971-05-03')) print 'Error in day overflow 2 <br>';
	$t = adodb_mktime(0,0,0,1,60,1965);
	if (!(adodb_date('Y-m-d',$t) == '1965-03-01')) print 'Error in day overflow 3 '.adodb_date('Y-m-d',$t).' <br>';
	$t = adodb_mktime(0,0,0,12,32,1965);
	if (!(adodb_date('Y-m-d',$t) == '1966-01-01')) print 'Error in day overflow 4 '.adodb_date('Y-m-d',$t).' <br>';
	$t = adodb_mktime(0,0,0,12,63,1965);
	if (!(adodb_date('Y-m-d',$t) == '1966-02-01')) print 'Error in day overflow 5 '.adodb_date('Y-m-d',$t).' <br>';
	$t = adodb_mktime(0,0,0,13,3,1965);
	if (!(adodb_date('Y-m-d',$t) == '1966-01-03')) print 'Error in mth overflow 1 <br>';
	
	print "Testing 2-digit => 4-digit year conversion<p>";
	if (adodb_year_digit_check(00) != 2000) print "Err 2-digit 2000<br>";
	if (adodb_year_digit_check(10) != 2010) print "Err 2-digit 2010<br>";
	if (adodb_year_digit_check(20) != 2020) print "Err 2-digit 2020<br>";
	if (adodb_year_digit_check(30) != 2030) print "Err 2-digit 2030<br>";
	if (adodb_year_digit_check(40) != 1940) print "Err 2-digit 1940<br>";
	if (adodb_year_digit_check(50) != 1950) print "Err 2-digit 1950<br>";
	if (adodb_year_digit_check(90) != 1990) print "Err 2-digit 1990<br>";
	
	// Test string formating
	print "<p>Testing date formating</p>";
	$fmt = '\d\a\t\e T Y-m-d H:i:s a A d D F g G h H i j l L m M n O \R\F\C822 r s t U w y Y z Z 2003';
	$s1 = date($fmt,0);
	$s2 = adodb_date($fmt,0);
	if ($s1 != $s2) {
		print " date() 0 failed<br>$s1<br>$s2<br>";
	}
	flush();
	for ($i=100; --$i > 0; ) {

		$ts = 3600.0*((rand()%60000)+(rand()%60000))+(rand()%60000);
		$s1 = date($fmt,$ts);
		$s2 = adodb_date($fmt,$ts);
		//print "$s1 <br>$s2 <p>";
		$pos = strcmp($s1,$s2);

		if (($s1) != ($s2)) {
			for ($j=0,$k=strlen($s1); $j < $k; $j++) {
				if ($s1[$j] != $s2[$j]) {
					print substr($s1,$j).' ';
					break;
				}
			}
			print "<b>Error date(): $ts<br><pre> 
&nbsp; \"$s1\" (date len=".strlen($s1).")
&nbsp; \"$s2\" (adodb_date len=".strlen($s2).")</b></pre><br>";
			$fail = true;
		}
		
		$a1 = getdate($ts);
		$a2 = adodb_getdate($ts);
		$rez = array_diff($a1,$a2);
		if (sizeof($rez)>0) {
			print "<b>Error getdate() $ts</b><br>";
				print_r($a1);
			print "<br>";
				print_r($a2);
			print "<p>";
			$fail = true;
		}
	}
	
	// Test generation of dates outside 1901-2038
	print "<p>Testing random dates between 100 and 4000</p>";
	adodb_date_test_date(100,1);
	for ($i=100; --$i >= 0;) {
		$y1 = 100+rand(0,1970-100);
		$m = rand(1,12);
		adodb_date_test_date($y1,$m);
		
		$y1 = 3000-rand(0,3000-1970);
		adodb_date_test_date($y1,$m);
	}
	print '<p>';
	$start = 1960+rand(0,10);
	$yrs = 12;
	$i = 365.25*86400*($start-1970);
	$offset = 36000+rand(10000,60000);
	$max = 365*$yrs*86400;
	$lastyear = 0;
	
	// we generate a timestamp, convert it to a date, and convert it back to a timestamp
	// and check if the roundtrip broke the original timestamp value.
	print "Testing $start to ".($start+$yrs).", or $max seconds, offset=$offset: ";
	
	for ($max += $i; $i < $max; $i += $offset) {
		$ret = adodb_date('m,d,Y,H,i,s',$i);
		$arr = explode(',',$ret);
		if ($lastyear != $arr[2]) {
			$lastyear = $arr[2];
			print " $lastyear ";
			flush();
		}
		$newi = adodb_mktime($arr[3],$arr[4],$arr[5],$arr[0],$arr[1],$arr[2]);
		if ($i != $newi) {
			print "Error at $i, adodb_mktime returned $newi ($ret)";
			$fail = true;
			break;
		}
	}
	
	if (!$fail) print "<p>Passed !</p>";
	else print "<p><b>Failed</b> :-(</p>";
}

/**
	Returns day of week, 0 = Sunday,... 6=Saturday. 
	Algorithm from PEAR::Date_Calc
*/
function adodb_dow($year, $month, $day)
{
/*
Pope Gregory removed 10 days - October 5 to October 14 - from the year 1582 and 
proclaimed that from that time onwards 3 days would be dropped from the calendar 
every 400 years.

Thursday, October 4, 1582 (Julian) was followed immediately by Friday, October 15, 1582 (Gregorian). 
*/
	if ($year <= 1582) {
		if ($year < 1582 || 
			($year == 1582 && ($month < 10 || ($month == 10 && $day < 15)))) $greg_correction = 3;
		 else
			$greg_correction = 0;
	} else
		$greg_correction = 0;
	
	if($month > 2)
	    $month -= 2;
	else {
	    $month += 10;
	    $year--;
	}
	
	$day =  ( floor((13 * $month - 1) / 5) +
	        $day + ($year % 100) +
	        floor(($year % 100) / 4) +
	        floor(($year / 100) / 4) - 2 *
	        floor($year / 100) + 77);
	
	return (($day - 7 * floor($day / 7))) + $greg_correction;
}


/**
 Checks for leap year, returns true if it is. No 2-digit year check. Also 
 handles julian calendar correctly.
*/
function _adodb_is_leap_year($year) 
{
	if ($year % 4 != 0) return false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品乱码久久久久久| 精品国产91乱码一区二区三区| 国产综合色产在线精品| 日产精品久久久久久久性色| 亚洲国产综合在线| 午夜日韩在线电影| 日韩影院免费视频| 日本vs亚洲vs韩国一区三区二区| 亚洲第一福利视频在线| 日韩高清电影一区| 国产在线精品一区二区不卡了 | 久久久久青草大香线综合精品| 欧美日韩一区国产| 精品国产乱码久久久久久牛牛| 日韩一卡二卡三卡| 国产欧美日韩三区| 亚洲综合一二区| 亚洲综合清纯丝袜自拍| 蜜桃av一区二区在线观看| 粉嫩av一区二区三区粉嫩| 在线观看一区不卡| 久久久91精品国产一区二区精品 | 亚洲6080在线| 国产成人精品一区二区三区四区| jvid福利写真一区二区三区| 欧美精品久久一区二区三区| 日本一区二区三区高清不卡| 亚洲国产裸拍裸体视频在线观看乱了| 日本麻豆一区二区三区视频| www.亚洲色图| 国产色产综合色产在线视频| 亚洲va欧美va人人爽午夜| 波多野结衣在线一区| 这里只有精品视频在线观看| 综合激情成人伊人| 波多野结衣欧美| 久久老女人爱爱| 精品在线观看视频| 日韩一级高清毛片| 亚洲444eee在线观看| 欧美无人高清视频在线观看| 国产精品免费av| 国产成人免费av在线| 精品区一区二区| 狠狠色综合色综合网络| 精品美女在线播放| 秋霞国产午夜精品免费视频| 51精品国自产在线| 日韩精品欧美精品| 337p日本欧洲亚洲大胆精品| 精一区二区三区| 久久综合色一综合色88| 国产成人aaaa| 亚洲欧美日韩一区二区| 欧美影院一区二区三区| 亚洲超丰满肉感bbw| 欧美一级日韩不卡播放免费| 免费在线看成人av| 国产欧美视频一区二区三区| 91女神在线视频| 蜜臀a∨国产成人精品| 精品日韩成人av| www.66久久| 久久狠狠亚洲综合| 亚洲美女视频在线观看| 在线不卡免费欧美| 成人av电影在线播放| 亚洲成av人片在线观看| 久久综合色之久久综合| 色88888久久久久久影院按摩| 日韩电影免费在线| 1024成人网色www| 欧美tickle裸体挠脚心vk| 色综合久久综合| 国产精一品亚洲二区在线视频| 亚洲靠逼com| 国产精品天天摸av网| 精品裸体舞一区二区三区| 91福利社在线观看| 成人黄色网址在线观看| 韩国三级电影一区二区| 三级影片在线观看欧美日韩一区二区 | 国产成人精品综合在线观看| 一区二区三区免费看视频| 中文字幕免费观看一区| 精品国产亚洲一区二区三区在线观看| 在线日韩av片| 91福利社在线观看| 欧美性色黄大片手机版| 欧美天堂亚洲电影院在线播放| 成人黄色在线网站| 色综合欧美在线视频区| 色呦呦日韩精品| 欧美在线视频不卡| 欧美一区欧美二区| 欧美成人性福生活免费看| 精品免费一区二区三区| 精品福利二区三区| 欧美国产激情一区二区三区蜜月| 久久精品日产第一区二区三区高清版 | 91久久精品一区二区| 欧美日韩国产高清一区二区 | 国产精品久久久久久久裸模| 亚洲国产高清aⅴ视频| 一区二区免费在线| 免费久久99精品国产| 国产剧情一区在线| 色94色欧美sute亚洲13| 日韩亚洲欧美在线| 亚洲日本在线观看| 人妖欧美一区二区| 一本到不卡精品视频在线观看 | 中国av一区二区三区| 亚洲va欧美va国产va天堂影院| 蜜桃视频第一区免费观看| 成人性视频免费网站| 91精品国产综合久久久久久漫画| 欧美大尺度电影在线| 亚洲一区视频在线| 国产91精品免费| 91精品国产一区二区三区| 国产精品久久久久影院老司| 欧美aaaaaa午夜精品| 91官网在线观看| 国产精品成人在线观看| 九色综合狠狠综合久久| 日韩无一区二区| 午夜精品视频在线观看| 色久优优欧美色久优优| 国产精品美女久久久久久2018| 免费成人结看片| 欧美成人vr18sexvr| 免费黄网站欧美| 久久奇米777| 国产成人亚洲精品青草天美| 欧美精品一区二区精品网| 麻豆精品一区二区av白丝在线| 在线免费不卡电影| 免费三级欧美电影| 亚洲精品在线观看网站| 国产精品一区免费视频| 中文一区在线播放 | 久久久综合精品| 风间由美性色一区二区三区| 亚洲欧洲日本在线| 欧美日韩成人综合天天影院| 日本成人在线一区| 国产视频视频一区| 色偷偷久久一区二区三区| 五月天中文字幕一区二区| 精品国产91久久久久久久妲己 | 日韩欧美综合一区| 福利一区二区在线| 舔着乳尖日韩一区| 久久综合色鬼综合色| 91美女福利视频| 美日韩一级片在线观看| 国产精品国产自产拍高清av王其| 欧美亚洲日本国产| 极品少妇xxxx精品少妇偷拍| 亚洲美女视频一区| 日本一区二区免费在线观看视频| 色中色一区二区| 成人动漫在线一区| 精品一二三四区| 五月婷婷久久综合| 亚洲欧美日韩国产一区二区三区 | 亚洲色图视频网站| 精品精品欲导航| 欧美一区二区成人6969| 在线亚洲一区二区| 99精品视频中文字幕| 国产乱码精品一区二区三区av | 国产suv精品一区二区6| 久久精品99国产精品日本| 日韩精品亚洲专区| 丝袜诱惑亚洲看片| 日韩精品电影在线观看| 亚洲美女偷拍久久| 夜夜亚洲天天久久| 午夜精品福利一区二区三区av| 亚洲日本va午夜在线电影| 亚洲人xxxx| 亚洲h在线观看| 天天综合日日夜夜精品| 亚洲二区在线视频| 免费看精品久久片| 国产一区中文字幕| 色综合色综合色综合| 欧美色图在线观看| 精品成人一区二区三区四区| 国产欧美一区二区三区鸳鸯浴 | 激情文学综合丁香| 国产成人在线免费| 色婷婷av一区二区三区gif| 欧美日韩在线精品一区二区三区激情 | jiyouzz国产精品久久| 在线观看中文字幕不卡| 精品国产亚洲在线| 一区二区成人在线|