工作中用到需要一个判断当前时间是否在 23:50到1:00之间的一段程序,在和别人的讨论中基本上有以下两种做法

1.分别获取时分进行判断和比较

<?php
function check_time1()
{
list($hour,$time)=explode("-",date("H-i",time()));//分开获取hour minute
if($hour<1 || ($hour==23 && $minute>50))
{
echo "time is between 23:50 and 1:00";//hour小于1 或者 (hour等于23 minute大于50)
}
}
?>

该方法比较普遍基础能想得到,循环10000次执行效率是这样的

2.通过时间戳做比较 比较今天凌晨的时间戳和明天凌晨的时间戳

<?php
function check_time2()
{
$time=time();
$zero_time=strtotime(date("Y-m-d"));//取出今天凌晨的时间
if($time-$zero_time<3600 || $zero_time+86400-$time<600)
{
echo "time is between 23:50 and 1:00";//现在时间减凌晨时间小于3600(说明在凌晨一点以前) 明天的凌晨减去现在的时间小于600(说明现在的时间到了23:50分以后)
}
}
?>

该方法由网友提供,不过感觉思考起来需要绕弯子,循环10000次执行效率是这样的

3.通过对Hi的不断分析,我想到一个办法是这样的 通过十进制整型转行比较 代码如下

<?php
function check_time3()
{
$time=date("Hi",time())+0;//获取时分进行转整型
if($time<100||$time>2350)
{
echo "time is between 23:50 and 1:00";//如果时分小于100 说明在1点前 如果时分大于2350 说明在23:50分以后
}
}
?>

该方法代码执行效率应该比较高,不过同样需要思考才能读懂代码,可读性不算太好,循环10000次执行的效率是这样的

经过分析对比发现,如果调用时间戳来比较 肯定是比较慢的,因为时间转换很耗时,而且两个差值比较由于数值大,比较起来也慢,用时和分分开比较是比较基础的做法,但是效率还不是最高,这种方法最容易理解和维护,用时分组成一个整数进行比较效率较高,因为时分没有被拆开 而且比较的数值都是比较小的 最大是2400,占用的空间和时间损耗也比较低,不过该方式也不太好维护,需要注释和斟酌才能看的明白。

各种方式各有优劣,大家可以选择适合自己的,进行编码和设计。

最新文章

  1. 关于jsp的内置对象request和response的重定向和转化(待补充)
  2. 洛谷P1538迎春舞会之数字舞蹈
  3. 我的c++学习(1)hello world!
  4. 记linux下使用create_ap 创建热点失败及解决(涉及rfkill)
  5. 【GDI+】 线段 文字 定位的问题(二)
  6. 我对CONTAINING_RECORD宏的详细解释
  7. spring MVC fromeWork 與webwork2 mvc 比較
  8. Nmap扫描教程之DNS服务类
  9. Linux下创建、查看、提取和修改静态库(*.a)
  10. poj2608---几个字母映射到同一个数字
  11. iphone缩小uIImage图片
  12. UI和UE有什么区别呢?
  13. iomanip头
  14. shell编写mysql抽取数据脚本
  15. 51NOD 1238 最小公倍数之和 V3 [杜教筛]
  16. cache缓存的BUG
  17. 使用这些 HTTP 头保护 Web 应用
  18. Java 模板模式
  19. Deloyment Descriptor web.xml
  20. Mixed Content: xxx This request has been blocked; the content must be served over HTTPS.

热门文章

  1. 计算机网络——TCP三次、四次握手详解
  2. 【UVa-514】铁轨——栈的学习
  3. C++类构造函数初始化列表
  4. 64 位系统遇到未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0
  5. 8、NFC技术:让Android自动打开网页
  6. Java之--Java语言基础组成—数组
  7. Win7+xp命令行 一键修改IP、DNS
  8. IOS-多视图控制器之间的切换
  9. openGl从零开始之添加颜色
  10. R 环境内存限制的更改