仓酷云

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

[学习教程] PHP网页编程之php的日期处置函数及uchome的function

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

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

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

x
怎么培养啊 别光说不练啊,好 ,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的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"
[0]=>
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,假如是不正常的,那末需求减一下。然而仍是那句话,这他妈的究竟是甚么意思阿?在学习中,我也一直这样要求着自己。
小魔女 该用户已被删除
沙发
发表于 2015-2-4 05:56:13 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
只想知道 该用户已被删除
板凳
发表于 2015-2-27 10:26:43 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
活着的死人 该用户已被删除
地板
发表于 2015-3-9 00:53:24 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
海妖 该用户已被删除
5#
发表于 2015-3-16 19:10:07 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-17 21:09:41 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-24 11:49:17 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
谁可相欹 该用户已被删除
8#
发表于 2015-3-29 18:05:38 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
爱飞 该用户已被删除
9#
发表于 2015-4-1 15:10:17 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
深爱那片海 该用户已被删除
10#
发表于 2015-4-2 23:40:53 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
柔情似水 该用户已被删除
11#
发表于 2015-4-3 05:06:39 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
愤怒的大鸟 该用户已被删除
12#
发表于 2015-4-15 18:58:34 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
再见西城 该用户已被删除
13#
发表于 2015-4-26 00:53:39 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
山那边是海 该用户已被删除
14#
发表于 2015-5-8 08:35:48 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
金色的骷髅 该用户已被删除
15#
发表于 2015-6-12 22:21:31 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
透明 该用户已被删除
16#
发表于 2015-6-17 10:49:10 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
小妖女 该用户已被删除
17#
发表于 2015-6-27 16:43:41 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
若相依 该用户已被删除
18#
 楼主| 发表于 2015-7-10 22:51:07 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
飘飘悠悠 该用户已被删除
19#
发表于 2015-7-13 17:09:28 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 21:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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