標籤:php日期操作函數
<?php
header(‘content-type:text/html;charset=utf-8;‘);
#總結php操作時間的函數
#1.cal_days_in_month(calendar,month,year):函數針對指定的年份和日曆,返回一個月中的天數
#calendar:規定要使用的曆法,month:規定月,year:規定年
#calendar的選擇性參數為:
#CAL_GREGORIAN,西曆
#CAL_JULIAN,凱撒曆法
#CAL_JEWISH,猶太曆法
#CAL_FRENCH,法國共和曆法
echo ‘1.cal_days_in_month(calendar,month,year):‘;
$d=cal_days_in_month(CAL_GREGORIAN,10,2005);
echo ‘<br>結果:‘;
echo $d;
#2.cal_from_jd(jd,calendar):函數把儒略日計數轉換為指定曆法的日期
$d=unixtojd(mktime(0,0,01,18,2006));
echo ‘<hr>2.cal_from_jd:‘;
echo ‘<br>結果:‘;
print_r(cal_from_jd($d,CAL_GREGORIAN));
#3.cal_info ([ int $calendar = -1 ] ):函數返回一個數組,其中包含管給定曆法的資訊
echo ‘<hr>3.cal_info():<br>結果:‘;
print_r(cal_info(0));//不填返回所有曆法資訊,參數設為0,1,2,3分別對應前面的曆法
#4.cal_to_jd(calender,month,day,year):函數把指定的日期轉換為儒略日期計數
echo ‘<hr>4.cal_to_jd:<br>‘;
$d=cal_to_jd(CAL_GREGORIAN,10,03,2005);
echo $d;
#5.easter_date(year):返回指定年份的複活節午夜的Unix時間戳記
#如果年份在Unix時間戳記範圍之外(1970之前,或2037之後)。該函數會產生一個警告,可使用easter_days代替easter_date()來計算年份之外的複活節日期
echo ‘<hr>5.easter_date:<br>‘;
$d=easter_date();//year省略則代表當年
echo $d;
#6.easter_days()返回指定年份與3月21日之間的天數
echo ‘<hr>6.easter_days:<br>‘;
$d=easter_days();//year省略則代表當年
echo $d;
#7.FrenchToJD()函數將法國共和曆法轉換成儒略曆法;
#GregorianToJD()函數將格里高利曆法轉換為儒略日曆法
echo ‘<hr>7.FrenchToJD、GregorianToJD:<br>‘;
$jd = gregoriantojd(10,3,1975);
echo($jd . "<br />");
#8.JDDayOfWeek(jd,mode):函數返回日期在周幾
#mode可選,可選值為:0預設,以整數返回周的天(0為周日....)
#1返回包含周的天的字串。
#2.返回包含周的天的簡寫的字串
echo ‘<hr>8.jddayofweek:<br>‘;
$jd=cal_to_jd(CAL_GREGORIAN,date("m"),date("d"),date("Y"));
echo(jddayofweek($jd,1));
#9.JDMonthName(jd,mode):函數返回指定曆法的月份字串
#mode可選,可選值:
#0,格里高利曆(縮寫)
#1.格里高利曆
#2.凱撒曆(縮寫)
#3.凱撒曆
#4.猶太曆
#5.法國共和曆
echo ‘<hr>9.JDMonthName(julianday, mode):<br>‘;
$jd=cal_to_jd(CAL_GREGORIAN,date(‘m‘),date(‘d‘),date(‘Y‘));
echo (JDMonthName($jd,1));
// 10.JDToFrench(juliandaycount):函數把儒略日計數轉換為共和國曆法
// JDToGregorian(julianday):函數把儒略日計數轉換為格里高利曆法
// jdtojewish(juliandaycount):函數把儒略日計數轉換為猶太曆法
// JDToJulian(julianday):函數把儒略日計數轉換為儒略曆
// jdtounix(jday):函數把儒略日計數轉換為Unix時間戳記
echo ‘<hr>10.jdtounix():<br>‘;
$jd=gregoriantojd(10,3,1970);
$unix=jdtounix($jd);
echo $unix;
// 11.JewishToJD(month, day, year):函數把猶太曆轉換為儒略日計數
// JulianToJD(month, day, year):函數把儒略曆轉換為儒略日計數
// unixtojd(timestamp):函數把Unix時間戳記轉換為儒略日計數
echo ‘<hr>11.unixtojd(timestamp):<br>‘;
echo unixtojd();
// 12.checkdate(month, day, year):函數驗證一個格裡高利日期
// 如果指定的值合法,則該函數返回true,否則返回false
// month介於1-12
// Day的在指定的month所應該具有的天數範圍之內,閏年已經考慮進去了
// year介於1到32767
echo ‘<hr>12.checkdate(month, day, year):<br>‘;
var_dump(checkdate(12,31,2000));
// 13.date_default_timezone_get(oid):函數返回指令碼中所有日期時間函數所使用的預設時區。
// date_default_timezone_set(timezone_identifier):函數設定用在指令碼中所有日期/時間函數的預設時區
echo ‘<hr>13.date_default_timezone_get(oid):<br>‘;
echo date_default_timezone_get();
// 14.date_sunrise(timestamp,format,latitude,longitude,zenith,gmt_offset):函數返回指定的日期與指定地點的日出時間
//date_sunset(timestamp,format,latitude,longitude,zenith,gmt_offset):函數返回指定的日期與地點的日落時間
// format:SUNFUNCS_RET_STRING,以string格式返回結果比如16:46
// SUNFUNCS_RET_DOUBLE,以float格式返回結果,比如16.78243132
// SUNFUNCS_RET_TIMESTAMP,以時間戳記的形式返回結果
// latitude,規定地點的緯度,正值北緯,預設;負值,南緯
// longitude,可選,規定地點的經度。預設是指東經,如果要指定西經,需要傳遞一個負值
// zenith,可選
// gmt_offset,可選,規定GMT與本地時間的差值,單位是小時
echo ‘<hr>14.date_sunrise(timestamp,format,latitude,longitude,zenith,gmt_offset):<br>‘;
//echo (date_sunrise(time(),SUNFUNCS_RET_STRING,38.4,-9,90,1));
echo date_sunrise(time());
// 15.date(format,timestamp):格式化一個本地時間/日期
echo ‘<hr>15.date(format,timestamp):<br>‘;
echo date(‘Y-m-d H:i:s‘);
echo ‘<br>‘;
echo date(‘Y-m-d H:i:s‘,time());
// 16.getdate(timestamp):函數取得日期資訊
// 返回結果中mday,月份中的第幾天,wday,星期中的第幾天
// yday,年份中的第幾天,0,返回時間戳記
echo ‘<hr>16.getdate(timestamp):<br>‘;
print_r(getdate());
// 17.gettimeofday():函數返回一個包含目前時間資訊的數組
// 返回數組的含義:
// "sec" - 自 Unix 紀元起的秒數
// "usec" - 微秒數
// "minuteswest" - 格林威治向西的分鐘數
// "dsttime" - 夏令時修正的類型
echo ‘<hr>17.gettimeofday():<br>‘;
echo(gettimeofday(true) . "<br />");
print_r(gettimeofday());
// 18.gmdate(format,timestamp):與date類似不同的是返回的是格林尼治標準時間
echo ‘<hr>18.gmdate(format,timestamp):<br>‘;
echo gmdate(‘Y-m-d H:i:s‘,time());
//19.gmmktime(hour,minute,second,month,day,year):函數擷取GMT日期的Unix時間戳記
// mktime((hour,minute,second,month,day,year)):函數返回一個日期的 Unix 時間戳記。
// hour 可選。規定小時。
// minute 可選。規定分鐘。
// second 可選。規定秒。
// month 可選。規定用數字表示的月。
// day 可選。規定天。
// year 可選。規定年。在某些系統上,合法值介於 1901 - 2038 之間。不過在 PHP 5 中已經不存在這個限制了。
echo ‘<hr>19.gmmktime(hour,minute,second,month,day,year):<br>‘;
$d = gmmktime(0,0,0,10,3,1975);
echo $d;
// 20.gmstrftime(format,timestamp):函數根據本地地區設定格式化GMT/UTC時間/日期
// strftime(format,timestamp):函數根據地區設定格式化本地時間/日期
//兩個函數的行為相同,只是返回的時間不同,前者是格林尼治本地時間,後者是本地時間
echo ‘<hr>20.gmstrftime(format,timestamp):<br>‘;
echo(strftime("%b %d %Y %X", mktime(20,0,0,12,31,1998)));
echo ‘<br>strftime(format,timestamp):<br>‘;
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));
// 21.idate(format,timestamp)://將本地時間/日期格式化為整數
//與date()不同,idate()只接受一個字元作為format參數
// format參數可選項為:
// B Swatch Beat/Internet Time
// d 月份中的第幾天
// h 小時(12 小時格式)
// H 小時(24 小時格式)
// i 分鐘
// I 如果啟用夏時制則返回 1,否則返回 0
// L 如果是閏年則返回 1,否則返回 0
// m 月份的數字
// s 秒數
// t 本月的總天數
// U 自 Unix 紀元(January 1 1970 00:00:00 GMT)起的秒數――這和 time() 作用相同
// w 星期中的第幾天(星期天是 0)
// W ISO-8601 格式年份中的第幾個星期,每星期從星期一開始
// y 年份(1 或 2 位元字――見下面說明)
// Y 年份(4 位元字)
// z 年份中的第幾天
// Z 以秒為單位的時區位移量
echo ‘<hr>21.idate(format)<br>‘;
echo idate(‘Y‘);
// 22.localtime(timestamp,is_associative):函數返回本地時間(一個數組)。
// 關聯陣列中不同的鍵名是:
// "tm_sec" - 秒數
// "tm_min" - 分鐘數
// "tm_hour" - 小時
// "tm_mday" - 月份中的第幾日
// "tm_mon" - 年份中的第幾個月,從 0 開始表示一月
// "tm_year" - 年份,從 1900 開始
// "tm_wday" - 星期中的第幾天
// "tm_yday" - 一年中的第幾天
// "tm_isdst" - 夏令時當前是否生效
echo ‘<hr>22.localtime:<br>‘;
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
echo ‘<br>‘;
print_r($localtime_assoc);
// 23.microtime():函數返回當前Unix時間戳記和微妙數
echo ‘<hr>23.microtime():<br>‘;
echo microtime();
//24.strtotimr():函數將任何英文文本的日期時間描述解析為Unix時間戳記
echo ‘<hr>24.strtotime():<br>‘;
echo strtotime(‘now‘);
echo ‘<br>‘;
echo strtotime(‘2014/7/22‘);
// 25.time(oid):返回目前時間的Unix時間戳記
echo ‘<hr>25.time():<br>‘;
echo time();
?>
本文出自 “虎哥的部落格” 部落格,請務必保留此出處http://7613577.blog.51cto.com/7603577/1531690