PHP中几个常用的时间应用方式
创始人
2024-07-29 02:21:45
0

在PHP中默认设置是标准的格林威治时间(零时区),所以如果要获得本地时间必须修改PHP的默认时区(八时区,除非您是外国的朋友,我想很少吧)。

PHP系统时区设置

修改PHP系统时区的两种方式:

1、修改php.ini文件中的设置,找到[date]下的“;date.timezone=”,将该项修改为date.timezone=Asia/Hong_Kong (PRC 中国时间),然后重新启动Apache服务器。

2、在应用程序中,使用时间日期函数之前添加“date_default_timezone_set(“Asia/Hong_Kong”)”函数

修改php.ini文件后获取本地时间:

php代码:

  1. echo “现在是北京时间:”.date(“Y-m-d H:i:s”).”

    ”;  

  2. ?> 

显示结果:

现在是北京时间:2010-11-30 20:50:03 (与本地时间相符)

php.ini修改后的代码:

  1. [Date]  
  2. ; Defines the default timezone used by the date functions  
  3. ; http://php.net/date.timezone  
  4. date.timezone = PRC 

Zero希望大家按照上面的方法去设置本地时区,要注意的是修改的php.ini文件必须是当前服务器所加载的php.ini文件。

PHP中比较两个时间的大小

在日常生活中我们要经常比较时间的早晚,对于我们来说判断时间的大小很简单。但是时间的比较不只是单纯的数字大小的比较,因此相对来说还是比较复杂。那么在PHP中通过什么方式来比较两个时间的大小呢?如果认真学习了上篇博文《从34到35,PHP时间戳》中的内容,我想这个问题也不会很棘手。

要比较两个时间的大小,我们需要将时间转化为时间戳格式,然后再进行比较这是最常用的方法。

常用到的函数是:strtotime()

语法格式:strtotime(time,now)

如果time是绝对时间,则now参数不起作用。

如果time是相对时间,则相对应的参数则对应函数就是now来提供,如果没有提供now参数,那么相对应的时间就是当前的本地时间。

实例:比较两个绝对时间的大小

代码:

  1. $zero1=date(“Y-m-d H:i:s”);  
  2. $zero2=”2010-11-29 21:07:00″;  
  3. echo “zero1的时间为:”.$zero1.”
    ”;  
  4. echo “zero2的时间为:”.$zero2.”
    ”;  
  5. if(strtotime($zero1)
  6. echo “zero1早于zero2″;  
  7. }else{  
  8. echo “zero2早于zero1″;  
  9. }  
  10. ?> 

输出结果:

zero1的时间为:2010-11-30 21:12:55

zero2的时间为:2010-11-29 21:07:00

zero2早于zero1

注:可以根据实例发散思维

计算两个日期的差值

奥运会倒计时,亚运会倒计时,生日倒计时这些倒计时都可以通过计算两个日期的差值来实现,同样需要用到strottime()函数。
实现倒计时需要将两个时间的差值整数化,需要用到函数ceil()

ceil()函数的作用是求不小于给定实数的最小整数

实例:倒计时小程序

实例代码:

  1. $zero1=strtotime (date(“Y-m-d H:i:s”)); //当前时间  
  2. $zero2=strtotime (“2011-2-03 24:00:00″); //过年时间  
  3. $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h  
  4. echo “离过年还有$guonian天!”;  
  5. ?> 

输出结果:离过年还有66天!

计算脚本的运行时间

在打开很多网页时都会有一个脚本的运行时间,百度搜索时也会出现搜索用时这些元素。那么是通过什么来实现的呢?

计算脚本运行时间需要用到microtime()函数,该函数的作用是返回当前时间戳和微秒数。返回格式为msec sec的字符串,其中sec是当前的UNIX时间戳,msec 为微秒数。

语法格式:microtime(void)

运算原理:分别记录脚本运行前后的时间戳,并计算两个时间戳的差值

实例:计算上个实例中的脚本运行时间

实例代码:

  1. function run_time()  
  2. {  
  3. list($msec, $sec) = explode(” “, microtime());  
  4. return ((float)$msec + (float)$sec);  
  5. }  
  6. $start_time=run_time();  
  7. $zero1=strtotime (date(“Y-m-d H:i:s”)); //当前时间  
  8. $zero2=strtotime (“2011-2-03 24:00:00″); //过年时间  
  9. $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h  
  10. echo “离过年还有$guonian天!”;  
  11. $end_time=run_time();  
  12. ?>  
  13.  

网页加载时间:

运行结果:离过年还有66天! 网页加载时间:0.00011682510375977秒

explode()函数和list()函数将在以后的学习中详细介绍!

好了到这里Zero的PHP时间与日期学习就告一段落了,接下来将学习关于PHP核心技术方面的内容。欢迎各位博友持续关注!

【编辑推荐】

  1. 高手传经 学习PHP重在坚持
  2. 是什么造成PHP远程文件包含漏洞产生
  3. 五个常见 PHP数据库问题
  4. 为什么说PHP是个集中营

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...