仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1593|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之php 日期和工夫的处置-郑阿奇(续)

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:37:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起。   1.UNIX工夫戳
phpd 处置数据,出格是对数据库中工夫类型数据停止格局化时,需先将工夫类型的数据转化为UNIX工夫戳停止处置。分歧的数据库体系对工夫类型的数据
不克不及兼容 转换,这时候就需求将工夫转化为UNIX工夫戳。如许京完成了分歧数据库体系的跨平台性。
2.工夫转化为工夫戳
假如要将用字符串表达的日期和工夫转化为工夫戳的模式,可使用strtotime()函数。
语法格局以下:
int strtotime(string $time [, int $now ])
例如:
复制代码 代码以下:
<?php
echo strtotime('2009-03-05'); //输入1236211200
echo strtotime('2009-03-05 10:24:30'); //输入1236248670
echo strtotime("10 September 2000"); //输入968544000
?>

另外一个获得日期的UNIX工夫戳的函数是mktime()函数,
语法格局以下:
int mktime([int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year]]]]]])
3.获得日期和工夫
1.data()函数
是将工夫戳照给定的格局转化为详细的日期和工夫字符串。
语法格局以下:
string date(string $format [, int $timestamp ])
申明:
$format指定了转化后的日期和工夫的格局,
$timestamp是需求转化的工夫戳,假如省略则利用当地以后工夫,即默许值为time()函数的值。
time()函数前往以后工夫的工夫戳
date函数的$format参数的取值以下表。
表4.6 date()函数撑持的格局代码
[size=+0]字 符
[size=+0]说 明
[size=+0]前往值例子
[size=+0]d
[size=+0]月份中的第几天,有前导零的2位数字
[size=+0]01~31
[size=+0]D
[size=+0]礼拜中的第几天,用3个字母暗示
[size=+0]Mon到Sun
[size=+0]j
[size=+0]月份中的第几天,没有前导零
[size=+0]1~31
[size=+0]l
[size=+0]礼拜几,完全的文本格局
[size=+0]Sunday~Saturday
[size=+0]N
[size=+0]ISO-8601格局数字暗示的礼拜中的第几天
[size=+0]1(礼拜一)~7(礼拜天)
[size=+0]S
[size=+0]每个月天数前面的英文后缀,用2个字符暗示
[size=+0]st、nd、rd或th,可以和j一同用
[size=+0]w
[size=+0]礼拜中的第几天,数字暗示
[size=+0]0(礼拜天)~6(礼拜六)
[size=+0]z
[size=+0]年份中的第几天
[size=+0]0~366
[size=+0]W
[size=+0]ISO-8601格局年份中的第几周,每周从礼拜一入手下手
[size=+0]例如:42(昔时的第42周)
[size=+0]F
[size=+0]月份,完全的文本格局,如January或March
[size=+0]January~December
[size=+0]m
[size=+0]数字暗示的月份,有前导零
[size=+0]01~12
[size=+0]M
[size=+0]三个字母缩写暗示的月份
[size=+0]Jan~Dec
[size=+0]n
[size=+0]数字暗示的月份,没有前导零
[size=+0]1~12
[size=+0]t
[size=+0]给定月份所应有的天数
[size=+0]28~31
[size=+0]L
[size=+0]是不是为闰年
[size=+0]假如是闰年为1,不然为0
[size=+0]o
[size=+0]ISO-8601格局年份数字。这和Y的值不异,只是假如ISO的礼拜数(W)属于前一年或下一年,则用那一年
[size=+0]例如:1999或2003
[size=+0]Y
[size=+0]4位数字完全暗示的年份
[size=+0]例如:1999或2003
[size=+0]y
[size=+0]2位数字暗示的年份
[size=+0]例如:99或03
[size=+0]a
[size=+0]小写的上午和下战书值
[size=+0]am或pm
[size=+0]A
[size=+0]大写的上午和下战书值
[size=+0]AM或PM
[size=+0]B
[size=+0]Swatch Internet尺度时
[size=+0]000~999
[size=+0]g
[size=+0]小时,12小时格局,没有前导零
[size=+0]1~12
[size=+0]G
[size=+0]小时,24小时格局,没有前导零
[size=+0]0~23
[size=+0]h
[size=+0]小时,12小时格局,有前导零
[size=+0]01~12
[size=+0]H
[size=+0]小时,24小时格局,有前导零
[size=+0]00~23
[size=+0]i
[size=+0]有前导零的分钟数
[size=+0]00~59
[size=+0]s
[size=+0]秒数,有前导零
[size=+0]00~59
[size=+0]e
[size=+0]时区标记
[size=+0]例如:UTC,GMT,Atlantic/Azores
[size=+0]I
[size=+0]是不是为夏令时
[size=+0]假如是夏令时为 1,不然为0
[size=+0]O
[size=+0]与格林尼治工夫相差的小时数
[size=+0]例如:+0200
[size=+0]P
[size=+0]与格林尼治工夫(GMT)的不同,小时和分钟之间用冒号分隔
[size=+0]例如:+02:00
[size=+0]T
[size=+0]本机地点的时区
[size=+0]例如:EST,MDT
[size=+0]Z
[size=+0]时区偏移量的秒数。UTC 西边的时区偏移量老是负的,UTC 东边的时区偏移量老是正的
[size=+0]-43200~43200
[size=+0]c
[size=+0]ISO 8601格局的日期
[size=+0]2004-02-12T15:19:21+00:00
[size=+0]r
[size=+0]RFC 822 格局的日期
[size=+0]Thu, 21 Dec 2000 16:01:07 +0200
[size=+0]U
[size=+0]从UNIX纪元入手下手至今的秒数
[size=+0]time()函数
2.getdate()函数
可以取得日期和工夫信息数组,
语法格局以下:
array getdate([ int $timestamp ])
申明:$timestamp是要转化的工夫戳,假如不给出则利用以后工夫。
函数依据$timestamp前往一个包括日期和工夫信息的数组,数组的键名和值如表4.7所示
键 名
说 明
值 的 例 子
seconds
秒的数字暗示
0~59
minutes
分钟的数字暗示
0~59
hours
小时的数字暗示
0~23
mday
月份中第几天的数字暗示
1~31
wday
礼拜中第几天的数字暗示
0(暗示礼拜天)~6(暗示礼拜六)
mon
月份的数字暗示
1~12
year
4位数字暗示的完全年份
例如:1999或2003
yday
一年中第几天的数字暗示
0~365
weekday
礼拜几的完全文本暗示
Sunday~Saturday
month
月份的完全文本暗示
January~December
0
自UNIX 纪元入手下手至今的秒数
体系相干,典范值从-2147483648~2147483647
4.6.4 其另日期和工夫函数
1.日期和工夫的盘算
复制代码 代码以下:
<?php
$oldtime=mktime(0,0,0,9,24,2008);
$newtime=mktime(0,0,0,10,12,2008);
$days=($newtime-$oldtime)/(24*3600); //盘算两个工夫相差的天数
echo $days; //输入18
?>

2.反省日期
checkdate()函数可以用于反省一个日期数据是不是无效,语法格局以下:
bool checkdate( int $month , int $day , int $year)
复制代码 代码以下:
<?php
var_dump(checkdate(12,31,2000)); //输入bool(TRUE)
var_dump(checkdate(2,29,2001)); //输入bool(FALSE)
?>

3.设置时区
体系默许的是格林尼治本准工夫,所以显示以后工夫时能够与当地工夫会有不同。PHP供应了可以修正时区的函数date_default_timezone_set(),
语法格局以下:
bool date_default_timezone_set (string $timezone_identifier)
参数$timezone_identifier为要指定的时区,
中国大陆可用的值是Asia/Chongqing,Asia/Shanghai,Asia/Urumqi(顺次为重庆,上海,乌鲁木齐)。北京工夫可使用PRC。
4.5实例-生成日历
复制代码 代码以下:
<?php
$year=@$_GET['year']; //取得地址栏的年份
$month=@$_GET['month']; //取得地址栏的月份
if(empty($year))
$year=date("Y"); //初始化为今年度的年份
if(empty($month))
$month=date("n"); //初始化为本月的月份
$day=date("j"); //获得当天的天数
$wd_ar=array("日","一","二","三","四","五","六"); //礼拜数组
$wd=date("w",mktime(0,0,0,$month,1,$year)); //盘算当月第一天是礼拜几
//年链接
$y_lnk1=$year<=1970?$year=1970:$year-1; //上一年
$y_lnk2=$year>=2037?$year=2037:$year+1; //下一年
//月链接
$m_lnk1=$month<=1?$month=1:$month-1; //上个月
$m_lnk2=$month>=12?$month=12:$month+1; //下个月
echo "<table cellpadding=6 cellspacing=0 width=200 bgcolor=#eeeeee><tr align=center bgcolor=#cccccc>";
//输入年份,单击“<”链接跳到上一年,单击“>”链接跳到下一年
echo "<td colspan=4><a href='EX4_15.php?year=$y_lnk1&month=$month'>
<</a>".$year."年<a href='EX4_15.php?year=$y_lnk2&month=$month'>></a></td>";
//输入月份,单击“<”链接跳到上个月,单击“>”链接跳到下个月
echo "<td colspan=3><a href='EX4_15.php?year=$year&month=$m_lnk1'>
<</a>".$month."月<a href='EX4_15.php?year=$year&month=$m_lnk2'>></a></td> </tr>";
echo "<tr align=center>";
for($i=0;$i<7;$i++)
{
echo "<td>$wd_ar[$i]</td> "; //输入礼拜数组
}
echo "</tr>";
$tnum=$wd+date("t",mktime(0,0,0,$month,1,$year)); //盘算礼拜几加受骗月的天数
for($i=0;$i<$tnum;$i++)
{
$date=$i+1-$wd; //盘算日数在表格中的地位
if($i%7==0) echo "<tr align=center>"; //一行的入手下手
echo "<td>";
if($i>=$wd)
{
if($date==$day&&$month==date("n")) //假如是当月确当天则将天数加黑
echo "<b>".$day."</b>";
else
echo $date; //输入日数
}
echo "</td> ";
if($i%7==6) echo "</tr> "; //一行停止
}
echo "</table>";
?>
你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧。
海妖 该用户已被删除
沙发
发表于 2015-2-4 03:49:31 | 只看该作者
当然这种网站的会员费就几十块钱。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-2-9 15:47:45 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
因胸联盟 该用户已被删除
地板
发表于 2015-2-27 09:01:00 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
山那边是海 该用户已被删除
5#
发表于 2015-2-28 15:29:23 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
活着的死人 该用户已被删除
6#
发表于 2015-3-10 00:23:55 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
老尸 该用户已被删除
7#
发表于 2015-3-17 03:10:27 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
蒙在股里 该用户已被删除
8#
发表于 2015-3-23 17:09:33 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
若天明 该用户已被删除
9#
发表于 2015-3-25 12:08:23 | 只看该作者
当然这种网站的会员费就几十块钱。
admin 该用户已被删除
10#
发表于 2015-3-25 23:59:11 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
小女巫 该用户已被删除
11#
发表于 2015-4-8 18:28:43 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
第二个灵魂 该用户已被删除
12#
发表于 2015-4-21 05:10:47 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
若相依 该用户已被删除
13#
发表于 2015-5-4 19:05:59 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
深爱那片海 该用户已被删除
14#
发表于 2015-5-6 18:17:22 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
柔情似水 该用户已被删除
15#
发表于 2015-5-6 23:17:47 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
兰色精灵 该用户已被删除
16#
发表于 2015-6-18 22:40:15 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
金色的骷髅 该用户已被删除
17#
发表于 2015-7-8 23:24:53 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
再现理想 该用户已被删除
18#
发表于 2015-7-9 09:06:30 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
愤怒的大鸟 该用户已被删除
19#
发表于 2015-7-17 00:35:11 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
简单生活 该用户已被删除
20#
发表于 2015-7-17 01:50:01 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表