楼主: keaide

PHP4手册:函数库及函数

[复制链接]
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
31#
 楼主| 发表于 2006-8-5 22:38 | 只看该作者
--------------------------------------------------------------------------------
函式:bcmul()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcmul
将二个高精确度数字相乘。

语法: string bcmul(string left operand, string right operand, int [scale]);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


此函式将二个高精确度的数字相乘,传入二个字串,以左边的数字字串 (left operand) 乘以右边的 (right operand) 数字字串。结果亦以字串传回。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。


  
  
参考  


bcdiv()   


--------------------------------------------------------------------------------
函式:bcpow()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcpow
求一高精确度数字次方值。

语法: string bcpow(string x, string y, int [scale]);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


此函式求一高精确度数字 x 的 y 次方。结果亦以字串传回。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。


  
  
参考  


bcsqrt()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
32#
 楼主| 发表于 2006-8-5 22:39 | 只看该作者
--------------------------------------------------------------------------------
函式:bcscale()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcscale
设定程式中所有 BC 函式库的内定小数点位数。

语法: string bcscale(int scale);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


设定所有传回值的小数点后所需的位数。之后程式若无特别指定,则依此设定的小数点位数。



--------------------------------------------------------------------------------
函式:bcsqrt()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcsqrt
求一高精确度数字的平方根。

语法: string bcsqrt(string operand, int [scale]);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


此函式求一高精确度数字开平方根值。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。


  
  
参考  


bcpow()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
33#
 楼主| 发表于 2006-8-5 22:40 | 只看该作者
--------------------------------------------------------------------------------
函式:bcsub()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcsub
将二个高精确度数字相减。

语法: string bcsub(string left operand, string right operand, int [scale]);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


此函式将二个高精确度的数字相减,传入二个字串,以左边的 (left operand) 减去右边的 (right operand) 值。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。


  
  
参考  


bcadd()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
34#
 楼主| 发表于 2006-8-5 22:40 | 只看该作者
历法函式库

--------------------------------------------------------------------------------
历法函式库  
--------------------------------------------------------------------------------
  


本函式库共有 10 个函式
想要使用历法函式库,需要先编译好 dl/calendar 函式库。PHP 中的历法函式库提供不同的西洋历法转换。转换的基准是凯撒日计数 (Julian Day Count)。所有的历法计算都必需先转换成凯撒日计数,再转成您所需要的历法,更多的资料可以参考这个网址找到 http://genealogy.org/~scottlee/cal-overview.html 。不过对于使用黄帝纪元的中国,这个函式库就还需要扩充才适合了。   


JDToGregorian: 将凯撒日计数 (Julian Day Count) 转换成为格里高里历法 (Gregorian date)。  
GregorianToJD: 将格里高里历法转换成为凯撒日计数。  
JDToJulian: 将凯撒日计数转换成为凯撒历法。  
JulianToJD: 将凯撒历法转换成为凯撒日计数。  
JDToJewish: 将凯撒日计数转换成为犹太历法。  
JewishToJD: 将犹太历法转换成为凯撒日计数。  
JDToFrench: 将凯撒日计数转换成为法国共和历法。  
FrenchToJD: 将法国共和历法转换成为凯撒日计数。  
JDMonthName: 传回月份名。  
JDDayOfWeek: 传回日期在周几。  

--------------------------------------------------------------------------------
函式:JDToGregorian()  
--------------------------------------------------------------------------------
  


历法函式库


JDToGregorian
将凯撒日计数 (Julian Day Count) 转换成为格里高里历法 (Gregorian date)。

语法: string jdtogregorian(int julianday);

传回值: 字串

函式种类: 时间日期


  
  
内容说明  


将凯撒历法的日期计数转换成为格里高里历法字串,并以"月份/日期/年" (month/day/year) 的字串传回。格里高里历为教皇格梩高里十三世在西元 1582 年颁行的历法。

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
35#
 楼主| 发表于 2006-8-5 22:40 | 只看该作者
--------------------------------------------------------------------------------
函式:GregorianToJD()  
--------------------------------------------------------------------------------
  


历法函式库


GregorianToJD
将格里高里历法转换成为凯撒日计数。

语法: int gregoriantojd(int month, int day, int year);

传回值: 整数

函式种类: 时间日期


  
  
内容说明  


有效的范围为格里高里历法西元前 4714 年至西元 9999 年。这套软体能计算到西元前 4714 年,但这是不太有意义的。格里高里历在 1582 年 10 月 15 日施行,但一些欧洲国家到很久后才实行,如英国在 1752 年实行、苏联在 1918 年施行、希腊在 1923 年实行。大部份的欧洲国家优先使用凯撒历法,再次才是格里高里历法。


  
  
使用范例  


$jd = GregorianToJD(10,11,1970);
echo("$jd\n";
$gregorian = JDToGregorian($jd);
echo("$gregorian\n";
?>


--------------------------------------------------------------------------------
函式:JDToJulian()  
--------------------------------------------------------------------------------
  


历法函式库


JDToJulian
将凯撒日计数转换成为凯撒历法。

语法: string jdtojulian(int julianday);

传回值: 字串

函式种类: 时间日期


  
  
内容说明  


将凯撒历法的日期计数转换成为凯撒历法字串,并以"月份/日期/年" (month/day/year) 的字串传回。

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
36#
 楼主| 发表于 2006-8-5 22:42 | 只看该作者
--------------------------------------------------------------------------------
函式:JulianToJD()  
--------------------------------------------------------------------------------
  


历法函式库


JulianToJD
将凯撒历法转换成为凯撒日计数。

语法: int juliantojd(int month, int day, int year);

传回值: 整数

函式种类: 时间日期


  
  
内容说明  


有效的范围为凯撒历法西元前 4713 年至西元 9999 年。这套软体能计算到西元前 4713 年,但这是不太有意义的。凯撒历法是在西元前 46 年建立的,但一些细节等到西元 8 年才稳定下来。


--------------------------------------------------------------------------------
函式:JDToJewish()  
--------------------------------------------------------------------------------
  


历法函式库


JDToJewish
将凯撒日计数转换成为犹太历法。

语法: string jdtojewish(int julianday);

传回值: 字串

函式种类: 时间日期


  
  
内容说明  


将凯撒历法的日期计数转换成为犹太历法字串,并以"月份/日期/年" (month/day/year) 的字串传回。

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
37#
 楼主| 发表于 2006-8-5 22:44 | 只看该作者
--------------------------------------------------------------------------------
函式:JewishToJD()  
--------------------------------------------------------------------------------
  


历法函式库


JewishToJD
将犹太历法转换成为凯撒日计数。

语法: int jewishtojd(int month, int day, int year);

传回值: 整数

函式种类: 时间日期


  
  
内容说明  


有效的范围为犹太历法西元前 3761 年起。犹太历法存在了数千年,但早期并没有公式化的开始月份计算法。每年的第一个月为首次观测到的新月。



--------------------------------------------------------------------------------
函式:JDToFrench()  
--------------------------------------------------------------------------------
  


历法函式库


JDToFrench
将凯撒日计数转换成为法国共和历法。

语法: string jdtofrench(int month, int day, int year);

传回值: 字串

函式种类: 时间日期


  
  
内容说明  


将凯撒历法的日期计数转换成为法国共和历法字串,并以 "月份/日期/年" (month/day/year) 的字串传回。

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
38#
 楼主| 发表于 2006-8-5 22:45 | 只看该作者
--------------------------------------------------------------------------------
函式:FrenchToJD()  
--------------------------------------------------------------------------------
  


历法函式库


FrenchToJD
将法国共和历法转换成为凯撒日计数。

语法: int frenchtojd(int month, int day, int year);

传回值: 整数

函式种类: 时间日期


  
  
内容说明  


函式只能转换法国共和历元年到十四年,也就是格里高里历的 1792 年 9 月 22 日至 1806 年 9 月 22 日。


--------------------------------------------------------------------------------
函式:JDMonthName()  
--------------------------------------------------------------------------------
  


历法函式库


JDMonthName
传回月份名。

语法: string jdmonthname(int julianday, int mode);

传回值: 字串

函式种类: 时间日期


  
  
内容说明  


本函式传回指定历法的月份字串。参数 mode 为历法名称,详见下表。

Mode 代表义意  
0 格里高里历 (缩写)  
1 格里高里历  
2 凯撒历 (缩写)  
3 凯撒历  
4 犹太历  
5 法国共和历

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
39#
 楼主| 发表于 2006-8-5 22:47 | 只看该作者
日期与时间函式库

--------------------------------------------------------------------------------
日期与时间函式库  
--------------------------------------------------------------------------------
  


本函式库共有 12 个函式
checkdate: 验证日期的正确性。  
date: 将伺服器的时间格式化。  
strftime: 将伺服器的时间本地格式化。  
getdate: 获得时间及日期资讯。  
gettimeofday: 取得目前时间。  
gmdate: 取得目前与 GMT 差后的时间。  
easter_date: 计算复活节日期。  
easter_days: 计算复活节与三月廿一日之间日期数。  
mktime: 取得 UNIX 时间戳记。  
gmmktime: 取得 UNIX 时间戳记的格林威治时间。  
time: 取得目前时间的 UNIX 时间戳记。  
microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值。  


--------------------------------------------------------------------------------
函式:checkdate()  
--------------------------------------------------------------------------------
  


日期与时间函式库


checkdate
验证日期的正确性。

语法: int checkdate(int month, int day, int year);

传回值: 整数

函式种类: 时间日期


  
  
内容说明  


若日期是有效的则传回 true,若日期有问题,则传回 false。本函式可以用来检查日期是否有效。有效范围如下:

年 为 0 至 32767 年
月 为 1 至 12 月
日 则随着月份及闰年变化

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
40#
 楼主| 发表于 2006-8-5 22:48 | 只看该作者
--------------------------------------------------------------------------------
函式:date()  
--------------------------------------------------------------------------------
  


日期与时间函式库


date
将伺服器的时间格式化。

语法: string date(string format, int [timestamp]);

传回值: 字串

函式种类: 时间日期


  
  
内容说明  


传回值的字串依设定的格式来决定。若有传入时间戳记值,则将时间戳记格式化传回;若无传入时间戳记值,则将目前伺服器的时间格式化传回。要将日期转为其它的语系格式,应使用setlocale() 及 strftime() 二个函式。字串格式化的选项如下:


a - "am" 或是 "pm"  
A - "AM" 或是 "PM"  
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"  
D - 星期几,三个英文字母; 如: "Fri"  
F - 月份,英文全名; 如: "January"  
h - 12 小时制的小时; 如: "01" 至 "12"  
H - 24 小时制的小时; 如: "00" 至 "23"  
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"  
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"  
i - 分钟; 如: "00" 至 "59"  
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"  
l - 星期几,英文全名; 如: "Friday"  
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"  
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"  
M - 月份,三个英文字母; 如: "Jan"  
s - 秒; 如: "00" 至 "59"  
S - 字尾加英文序数,二个英文字母; 如: "th","nd"  
t - 指定月份的天数; 如: "28" 至 "31"  
U - 总秒数  
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)  
Y - 年,四位数字; 如: "1999"  
y - 年,二位数字; 如: "99"  
z - 一年中的第几天; 如: "0" 至 "365"  
其它不在上列的字元则直接列出该字元。  


  
  
使用范例  


范例一:
print(date( "l dS of F Y h:i:s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));
?>

范例二:
$tomorrow  = mktime(0,0,0,date("m"  ,date("d"+1,date("Y");
$lastmonth = mktime(0,0,0,date("m"-1,date("d",  date("Y");
$nextyear  = mktime(0,0,0,date("m",  date("d",   date("Y"+1);
?>  

  
  
参考  


gmdate()  mktime()

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表