|
这是一篇非常好的文章,偶成功的运用一个access数据库的东西转到mysql上,其中时间问题是首要考虑处理,大虾就不用往下看了……p开源
一下是一篇文章转帖:有少许改动……在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX 时间戳(Unix Epoch)。 如果我们有这样一段的代码: php开源 <?php echo time(); ?> 返回值1162541319,而此时的时间为Fri Nov 3 16:11:52 HKT 2006 在PHP中,对日期处理的函数都必须用到由time()返回的时间戳值。同时,由于PHP在Unix和Windows系统中均使用同样的时间戳值,这就允许你不需要修改代码即可在不同的系统间移植。另外的一个好处是time()函数返回的是一个整数,你可以将其作为整数字段或文本字段存入数据库,而不必使用特别的日期/时间字段。 现在让我们来展示它的实际用途: php开源 改变日期显示的方式-日期和时间的显示形式 PHP提供两个办法来将Unix的时间戳值转换成为有用的数据。第一个是date()函数。这个函数有两个参数-第一个字符串用于设定你所希望返回的格式,第二个为Unix的时间戳值。 格式化字符串通过一些简单的特殊格式化字符来显示你所希望看到的格式的日期和时间。假设你希望日期以这样的格式显示“18h01 Sunday 21 May”。 我们需要对字符串中的每一部分使用一个特殊格式化字符,你可以从PHP手册中日期和时间函数库中找到。这样的特殊格式化字符数量不少,他们所表示的类似于星期几、月的英文名、用2位或4位数表示的年份,是否是上午(AM)或下午(PM)以及其他。对于这个例子我们需要的特殊字符为: ‘H’ -24 小时制的小时 ‘i’- 分钟 ‘l’- 星期几的英文全名 ‘d’- 本月的第几日 ‘F’- 月份的英文全名 因此我们的格式化字符串为”Hhi l d F”, PHP代码为:
php开源 <?php echo date ("Hhi l d F" ,time()); ?>
当我们执行这段代码,我们发现我们所得到的结果为: 180609 Sunday 21 May 这样的结果看起来有些奇怪。让我们再查一下PHP手册,原来’h’所代表的是12 小时制的小时数。这再次证明了一句真理:“计算机只做你所告诉它该做的,而不是你想要它做的”。我们有两个选择。第一个是在h前使用转义字符“\”: echo date ("H\hi l d F", time()); 我们得到这样的结果: 18h12 Sunday 21 May 这正是我们所要的。但如果我们在一个十分复杂的句子中需要包含日期和时间,我们是否需要对每个字符使用转义字符? 答案当然是不。我们使用另一个函数strftime()。 strftime()有两个好处。第一个好处我们并不在本文讨论范围内-如果你使用setlocale()函数,你可以通过strftime得到相应语言的月份的名称。另外的一个好处是你可以将特别的日期和时间的格式化字符包含在你的字符串中。这同时也意味着无论你是否要学习date()函数的所有特殊格式化字符,你都必须学习一整套完全不同的格式化字符。 strftime()工作的方式和date()没有什么不同,除了特殊格式化字符的前面必须添加一个百分号%。如果用strftime()函数,前面例子的代码如下:
<?php echo strftime ("%Hh%M %A %d %b" ,time()); ?>
php开源 结果为: 18h24 Sunday 21 May 这也许看起来将简化繁,但考虑一下如果你所需要的显示的为"Today is Sunday 21 May 2000. The time is somewhere close to 18h24." 我想使用date()函数无疑令人感到厌烦。 在开始的时候,我提及我们有两种方式可以从Unix时间戳值中得到有用的数据。我们刚刚了解了date()和strftime()。另一个getdate()。这个函数只需要Unix 的时间戳值作为参数,而函数的返回值为日期和时间的数组。
(阅读次数:)
共3页: 上一页 1 [2] [3] 下一页
|