文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>注意:有关时间日期的库函数,三月份作品(已发布)

注意:有关时间日期的库函数,三月份作品(已发布)

时间:2007-02-17  来源:PHP爱好者

[b:02d4fd6cac]
由于已有十二位网友“顶”力相助了,我将这个库发布出来。有了前面的教训,我不打算在这里帖出来了。请直接到我的演示地址去下载。这次这个演示例子比较清楚,怎么用大家自己参考吧,请仔细看库函数,然后自己去组合,可以完成更多的功能。

演示网址:
http://longnetpro.xicp.net/demo

另外:源码中要注意函数的参数中有可能传递引用,主要是用于一个函数中同时返回多个结果——通过引用传到函数外部。
[/b:02d4fd6cac][/size:02d4fd6cac]

简介:

有关时间日期的库函数,三月份作品,共二十二个函数(这次没有用OO)。

该库函数分两个主要部分:日期处理部分与时间处理部分。

在日期处理方面,有朱力安历及高格里历(及现在公历)的日期处理,并处理1582年日期修正。函数有判断闰年,检查日期有效性,距公元元年一月一日零时的天数等函数,象取得某年某月某日是当年第几天或是星期几这种是基本函数,就不再提了。还有一些函数,如将距公元元年一月一日的天数转换为具体年月日(可以为公元前的日期)的函数;得到某年某月的第几个星期几是几号的函数;将日期转换为ISO8601格式的函数;取得黄道星座的函数等等。

在时间处理方面,时间范围与UNIX时间戳兼容(在1970年到2038年与UNIX时间戳是完全一致的,就是说时间戳还是以GMT1970年1月1日零时为时间戳的0,前面的是负数,后面的是正数),但远远大于UNIX时间戳的范围。时间范围从公元前4713年1月1日00:00:00(朱力安历零时)到公元9999年12月31日23:59:59。有分别对应于mktime及gmmktime的经过扩展的函数。还有一个专门的函数将时间戳(扩展后的)转换为年月日、时分秒、星期、天数等信息,以方便直接使用。

将这些函数组合起来使用,基本上可以实现对日期与时间的各种操作。比如求两个日期之间的天数差,只需用函数得到两个日期距公元元年一月一日的距离,相减即可。或是某个日期加上天数然后逆变为日期。你还可以将它们组合起写成更多自己的函数。

在所有的函数中,没有用到任何循环,不象ADODB中那样处理时间——好象ADODB中的时间处理大量用循环递增或递减,真不知道其作者为什么用这种方式算日期与时间——分析它的代码后估计是对那些历史上修正过的日期不好处理,由于修正过,日期与星期会错位。我这个库函数中都是纯加减乘除取模取整并用条件判断,一般都是一次计算出来,没有循环计算的情况。

注:这些库函数基本经过本人严格检验,程序上应该没有什么BUG(如果有的话欢迎指出)。这次有些英文注释,不过由于算法比较多,可能数学不好的人不大看得懂,还有对历法不清楚的人也不大看得懂(当时我为了写这些函数上网查历法就查了好久)。反正你到时候试着用就完了。

最后,声明一下。本库函数中有一个算法是参考了PEAR中相关类的一个方法,即将距公元元年第一天的天数转换为具体年月日的算法——典型的数学变换技巧,实在是佩服想出这个算法的人。在ADODB中的时间处理部分发现了ISO8601规范,并在网上查到具体规范再实现之(实现过程是原创的)。其余所有函数中涉及的所有算法均是在核实历法之后由本人原创,库的设计也是原创。至于说其中有些数据值是怎么得来的,只能说一句:是用计算器或是写个小程序算出来的,本人可以基本保证这些数据的正确性(除了我不知道的历法变化不能保证外)。

有兴趣的朋友可以跟帖。如果有更好的建议可以讨论。

 tonera 回复于:2004-05-17 12:42:10 建议:为了大家能更好更深刻更容易地理解您的大作的精华,是不是考虑给出足够多的注释(中文更佳)?

longnetpro 回复于:2004-05-17 12:54:39 主要是本人太懒,一般函数名,变量名基本上就表示出大致的算法流程,因此不大写注释。还有一个就是本人自认为代码逻辑还算是比较清晰的,很多无关紧要的东西都没有必要写注释。至于为什么不用中文,很简单:写代码的时候老要切换输入法,比较烦。再说,在一大篇英文字母中夹进一些汉字,看着不舒服(我一直用UE写代码,夹进汉字字体比较难看)。

vidarz 回复于:2004-05-17 13:09:11 我来顶一下,有好东西看当然期待了。肯定又是一个精华贴。

gzdkj 回复于:2004-05-17 17:46:58 期待中~~~

夜猫子 回复于:2004-05-17 20:28:01 老大愿意贡献,偶们当然乐得其成,呵呵

飞雪恨水 回复于:2004-05-18 11:02:34 好东西太多了

mikespook 回复于:2004-05-18 11:49:35 好东东~~~

用中文注释难看,那就用英文啦~~ ^_^

EasyChen 回复于:2004-05-18 14:33:22 up下 等着看好东西了

jhsea3do 回复于:2004-05-18 20:54:14 顶, up, sp !!!

oklqh 回复于:2004-05-19 00:07:06 waitting~~~

muyan 回复于:2004-05-19 12:04:03 now waiting...

longnetpro 回复于:2004-05-19 21:35:33 自己再顶一下,还差两个人。。。

夜猫子 回复于:2004-05-19 21:36:36 老大,你要逼我注册马甲是不是?

vidarz 回复于:2004-05-20 14:28:31 [quote:f7e3691f1c="longnetpro"]自己再顶一下,还差两个人。。。[/quote:f7e3691f1c]
偶是刚注册的新人,偶也来顶一下 8)

gzdkj 回复于:2004-05-20 18:48:59 还没发布?顺便再顶一下!!!

longnetpro 回复于:2004-05-20 19:47:19 [quote:b885c378d5="gzdkj"]还没发布?顺便再顶一下!!![/quote:b885c378d5]

就等最后一位了。

csona 回复于:2004-05-20 23:11:01 我顶

longnetpro 回复于:2004-05-21 09:27:57 由于各位的支持,现在发布了。

longnetpro 回复于:2004-05-21 09:53:31 刚才有一个函数修正了一下,下载过的请重新下载。

vidarz 回复于:2004-05-21 10:13:00 不错!

li2002 回复于:2004-05-24 08:31:33 不错,谢谢

yutian 回复于:2004-05-24 09:02:39 ding

shanhan 回复于:2004-05-24 13:44:16 heheh!
我看不懂啊

PHPstupid 回复于:2004-05-24 16:01:15 顶一下

w_heaven 回复于:2004-05-28 12:57:31 好东西

huabingl 回复于:2004-05-28 13:19:39 提供的几个类是学习的好材料阿,感激不已
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载