PHP网页编程之php的日期处置函数及uchome的function
怎么培养啊 别光说不练啊,好 ,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的linux下开发。 复制代码 代码以下:<?php echo time();
echo mktime(11,25,0,9,5,2010);//和time一样的
echo microtime();
echo mktime(0,0,0,1,1,1970);
?>
这外面输入分离是1283657290、1283657100、0.88533200 1283657290、-25200。从最初一个值看,咱们晓得这里前往的工夫戳是经由了时区调剂的,也就是我在中国的1970年1月1日0点,格林尼治还没有到0点呢,因而这里的工夫会是正数且整好等于-8*3600。
再看
复制代码 代码以下:
<?php
echo date ("H i l d F" ,1283657100);
echo gmdate("H i l d F",1283657100);
echo strftime("%Hh%M %A %d %b" ,1283657100);
//strftime()任务的体例和date()没有甚么分歧,除特别格局化字符的后面必需添加一个百分号%。
echo strtotime("2010-9-5 11:25:00");
var_dump(getdate (time()));
?>
这里的输入是11 25 Sunday 05 September、03 25 Sunday 05 September、11h25 Sunday 05 Sep、1283657100、array(11) {
["seconds"]=>
int(9)
["minutes"]=>
int(39)
["hours"]=>
int(11)
["mday"]=>
int(5)
["wday"]=>
int(0)
["mon"]=>
int(9)
["year"]=>
int(2010)
["yday"]=>
int(247)
["weekday"]=>
string(6) "Sunday"
["month"]=>
string(9) "September"
=>
int(1283657949)
}
次要看第三个输入,这里输入的是在中国的2010年9月5日11点25分的时分 格林尼治的工夫是几何。这里也要计入时差的。并且这里还有一个很奇奥的就是只要gmdate没有收回正告,其他的都有正告说不克不及依附于体系的时区。想象也是,由于gmdate算出来的只是格林尼治的工夫,就算是体系时区错了,一加一减就又正常了。
复制代码 代码以下:
//工夫格局化
function sgmdate($dateformat, $timestamp='', $format=0) {
global $_SCONFIG, $_SGLOBAL;
if(empty($timestamp)) {
$timestamp = $_SGLOBAL['timestamp'];
}
$timeoffset = strlen($_SGLOBAL['member']['timeoffset'])>0?intval($_SGLOBAL['member']['timeoffset']):intval($_SCONFIG['timeoffset']);
$result = '';
if($format) {
$time = $_SGLOBAL['timestamp'] - $timestamp;
if($time > 24*3600) {
$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);
} elseif ($time > 3600) {
$result = intval($time/3600).lang('hour').lang('before');
} elseif ($time > 60) {
$result = intval($time/60).lang('minute').lang('before');
} elseif ($time > 0) {
$result = $time.lang('second').lang('before');
} else {
$result = lang('now');
}
} else {
$result = gmdate($dateformat, $timestamp + $timeoffset * 3600);
}
return $result;
}
咱们直接看if($format){}里的器材,起首求得体系以后工夫和我传出去的工夫(通常为数据库里的工夫,如2010-9-4 21:00:00)的差。假如工夫差是在一天之内,则直接得出结论好比两小时前,假如是大于1天,则挪用gmdate。这里我就是很弄不懂的。为何要挪用这个诡异的函数,而不是直接date($timestamp)呢?这他妈的究竟是甚么意思阿?
gmdate
When run in Finland (GMT +0200), the first line below prints "Jan 01 1998 00:00:00", while the second prints "Dec 31 1997 22:00:00".
复制代码 代码以下:
<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>
也就是说gmdate是思索过了时差的。这里会输入尺度的工夫格局,而不是几天前。
接上去侧重看uchome的function_common里的函数
复制代码 代码以下:
//字符串工夫化
function sstrtotime($string) {
global $_SGLOBAL, $_SCONFIG;
$time = '';
if($string) {
$time = strtotime($string);
if(gmdate('H:i', $_SGLOBAL['timestamp'] + $_SCONFIG['timeoffset'] * 3600) != date('H:i', $_SGLOBAL['timestamp'])) {
$time = $time - $_SCONFIG['timeoffset'] * 3600;
}
}
return $time;
}
别看这个函数很少,然而看得我很费劲。这里是要把一个工夫字符串转换为工夫戳。好比我这里输出的是2010 9 4 21:08,则$time的值就是这个工夫到January 1 1970 00:00:00 GMT的工夫差,这里是要思索甚么时差的。$_SGLOBAL[''timestamp]的值其实和$time一样的办法算出来的,然而数值能够有渺小的不同。$_SCONFIG['timeoffset']是在config的谁人内外面的,今朝其值为8。这里有一种情形是体系的时区是对的,或是不合错误的,需求经由过程$_SCONFIG['timeoffset']来查验。gmdate将传入的工夫戳(运转法式的中央的工夫戳)经由体系的时区来失掉此时格林尼治谁人中央的工夫。假如是体系时区设对了,那末这个正好一加一减,和前面的相等了(其实这里$_SGLOBAL[''timestamp]的数值是可有可无的)。假如是正常的,那末就不需求改$time,假如是不正常的,那末需求减一下。然而仍是那句话,这他妈的究竟是甚么意思阿?在学习中,我也一直这样要求着自己。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 本文当是我的笔记啦,遇到的问题随时填充 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 本文当是我的笔记啦,遇到的问题随时填充 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
页:
[1]