php中关于时间函数date以及常用的时间计算方法
1,阅读php手册date函数
常用时间函数:
checkdate()验证一个时间是否正确
date_default_timezone_get()取得当前脚本所使用的时区
date_default_timezone_set()设定脚本所用时区 ini_set()也可以满足,或者修改配置文件
date_sunrise() date_sunset() 返回给定的日期和地点的日出时间和日落时间
date()格式化一个日期,下边会有详细内容
getdate() 取得日期时间的相关信息
gettimeofday()取得当前时间的相关信息
idate()将本地时间日期格式化为整数,但只接受一个字符作为参数
microtime()返回当前的时间戳和秒数
mktime()取得一个日期的时间戳
strtotime()将英文文本的日期秒数解析为时间戳
2,重要函数详解
date()格式化一个日期
string date( string $format [, int $timestamp] )
d 月份中的第几天,也就是几号,此为具有前导零,例如01,02
D 星期中的第几天,也就是英文星期几的单词缩写,Mon到Sun
l(L小写) 星期几,此为完整的英文格式, Sunday到Saturday
N 用数字表示星期几,1为星期一,7为星期日
S 每月天数后面的英文后缀
w 星期中的第几天,使用数字表示,0为星期天,6为星期六
z 年份中的第几天 0到365
W 年份中的第几周
F 月份,完整的英文单词
m 月份数字格式,具有前导0
M 三个字母表示的缩写的月份
n 数字表示的月份,没有前导0
t 给定月份所应有的天数
L 检测是否为闰年,闰年为1,月份为0
Y 4位数字表示的年份
y 2位数字表示的年份
a 小写的上午或者下午的值
A 大写的上午或者下午的值
g 12小时制,没有前导0
G 24小时制,没有前导0
h 12小时制,有前导0
H 24小时制,有前导0
i 具有前导0的分钟数
s 秒数,具有前导0
u 毫秒,date()函数返回的是000000格式的
e 时区标识
I 是否为夏令时,是为1,不是为0
T 本机所在的时区
c 2017-05-08T 15:22:21+00:00 格式的时间
U 从1970开始至今的秒数
idate()函数详解
与date的区别是此函数只可以传递一个参数,date()可以传递多个参数
B Internet time
d 月份中的第几天
h 12小时制的时间
H 24小时制的时间
i 分钟
I 若启用夏令时返回1,否则为0
L 如果是闰年则返回1,否则返回0
m 月份的数字
s 秒数
t 本月的总天数
U 从1970起的秒数
w 星期中的第几天
W 年份中的第几个星期,星期从星期一开始
y 年份,1或者2位数字
Y 年份4位数字
z 年份中的第几天
Z 以秒为单位的时区偏移量
strtotime()函数衔接
用法示例
代码如下 | 复制代码 |
strtotime("now");
strtotime("10 September 2017");
strtotime("+1 day");
strtotime("+1 week");
strtotime("+1 week 2 days 4 hours 2 seconds");
strtotime("next Thursday"); strtotime("last Monday"); |
3,常用时间汇总
代码如下 | 复制代码 |
$times= []; functionmakeTime(){ //获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; $times['today']['begin'] =$beginToday; $times['today']['end'] =$endToday;
//获取昨日起始时间戳和结束时间戳 $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y')); $endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1; $times['yesterday']['begin'] =$beginYesterday; $times['yesterday']['end'] =$endYesterday;
//获取上周起始时间戳和结束时间戳 $beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')); $endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')); $times['lastWeek']['begin'] =$beginLastweek; $times['lastWeek']['end'] =$endLastweek;
//获取本月起始时间戳和结束时间戳 $beginThismonth=mktime(0,0,0,date('m'),1,date('Y')); $endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y')); $times['thisMonth']['begin'] =$beginThismonth; $times['thisMonth']['end'] =$endThismonth;
//获取本周开始时间和结束时间,此例中开始时间为周一 $defaultDate=date('Y-m-d'); $first= 1; $w=date('w',strtotime($defaultDate)); $beginWeek=strtotime("$defaultDate-". ($w?$w-$first:6) .'days'); $endWeek=$beginWeek+ 6*24*3600-1; $times['thisWeek']['begin'] =$beginWeek; $times['thisWeek']['end'] =$endWeek;
//获取上月的起始时间戳和结束时间戳 $beginLastmonth=mktime(0,0,0,date('m')-1,1,date('Y')); $endLastmonth=mktime(23,59,59,date('m')-1,date('t'),date('Y')); $times['LastMonth']['begin'] =$beginLastmonth; $times['LastMonth']['end'] =$endLastmonth;
//获取今年的起始时间和结束时间 $beginThisyear=mktime(0,0,0,1,1,date('Y')); $endThisyear=mktime(23,59,59,12,31,date('Y')); $times['thisYear']['begin'] =$beginThisyear; $times['thisYear']['end'] =$endThisyear;
//获取上年的起始时间和结束时间 $beginLastyear=mktime(0,0,0,1,1,date('Y')-1); $endLastyear=mktime(23,59,59,12,31,date('Y')-1); $times['lastYear']['begin'] =$beginLastyear; $times['lastYear']['end'] =$endLastyear;
//获取本季度开始时间和结束时间 $season=ceil((date('n'))/3);//当月是第几季度 $beginThisSeason=mktime(0, 0, 0,$season*3-3+1,1,date('Y')); $endThisSeason=mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y')); $times['thisSeason']['begin'] =$beginThisSeason; $times['thisSeason']['end'] =$endThisSeason;
//获取上季度的起始时间和结束时间 $beginLastSeason=mktime(0, 0, 0,($season-1)*3-3+1,1,date('Y')); $endLastSeason=mktime(23,59,59,($season-1)*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y')); $times['lastSeason']['begin'] =$beginLastSeason; $times['lastSeason']['end'] =$endLastSeason;
return$times; } $times= makeTime(); |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
小编推荐的这篇文章介绍了php实现XML和数组的相互转化功能示例,非常实用,有兴趣的同学快来看看吧。数组转化为xml:
代码如下 | 复制代码 |
functionarrtoxml($arr,$dom=0,$item=0){ if(!$dom){ $dom=newDOMDocument("1.0"); } if(!$item){ $item=$dom->createElement("root"); $dom->appendChild($item); } foreach($arras$key=>$val){ $itemx=$dom->createElement(is_string($key)?$key:"item"); $item->appendChild($itemx); if(!is_array($val)){ $text=$dom->createTextNode($val); $itemx->appendChild($text); }else{ arrtoxml($val,$dom,$itemx); } } return$dom->saveXML(); } |
xml转化为数组:
代码如下 | 复制代码 |
functionxmltoarr($path){ $xmlfile=file_get_contents($path);//提取xml文档中的内容以字符串格式赋给变量 $ob= simplexml_load_string($xmlfile);//将字符串转化为变量 $json= json_encode($ob);//将对象转化为JSON格式的字符串 $configData= json_decode($json, true);//将JSON格式的字符串转化为数组 print_r($configData); |
python脚本自动生成需要文件
在工作中我们经常需要通过一个文件写出另外一个文件,然而既然是对应关系肯定可以总结规律让计算机帮我们完成,今天我们就通过一个通用文件生成的python脚本来实现这个功能,将大家从每日重复的劳动中解放!
定义一个函数
代码如下 | 复制代码 |
defproduceBnf(infilename,outfilename): List=[] withopen(infilename,'r') as inf: forlineininf.readlines(): List.append(re.match("正则表达式").group(?)) withopen(outfilename,'w') as outf: i=0 outf.write("文件头"); forcommandinList: outf.write(“写入刚刚读取的内容(也可能是某种对应关系)”) outf.write("写入其他内容") outf.write("写入文件尾") |
差不多,大多数情况下,都是这样的框架,这个函数需要一个输入文件,一个输出文件,一般情况下,我们希望,能够从命令行中将输入文件参数传入,然后在本目录下生成输出文件
获得输入输出路径
代码如下 | 复制代码 |
infile=sys.argv[1] produceBnf(infile,os.path.join(os.path.dirname(infile),"输出文件的名字")); |
ok,搞定,然后在命令行中我们执行这个python脚本然后加个参数就完工了。
脚本就是用来帮助我们简化重复的工作,让我们去做更有意义,更加需要思考的事情,所以希望大家以后多用脚本来简化自己的重复工作。
php怎么用函数外的变量?本文实例介绍了PHP闭包函数传参及使用外部变量的方法,有兴趣的同学可以参考一下。在Laravel控制器写两个方法,一个是在内部创建一个闭包函数,一个是执行传过来的闭包函数,测试闭包的写法,use使用外部变量,及闭包函数的传参。如下:
代码如下 | 复制代码 |
//测试闭包传参及use使用外部变量 publicfunctiontestClosure($t1,$t2) { $closure=function($param1,$param2)use($t1,$t2) { echo$param1.$param2.$t1.$t2; }; $this->execClosure('test.closure',$closure); } //执行闭包函数 protectedfunctionexecClosure($name, Closure$closure) { echo'Closure func name:'.$name; echo' $closure('p1','p2'); } |
在routes.php添加路由:
代码如下 | 复制代码 |
Route::get('/test/closure/{t1}/{t2}',['uses'=>'TestController@testClosure']); |
访问www.example.com/test/closure/hehe1/hehe2
浏览器输出结果:
Closure func name:test.closure
p1p2hehe1hehe2
相关文章
- 今天小编就为大家分享一篇python 计算方位角实例(根据两点的坐标计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
- 这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
- Perl时间函数localtime的使用介绍,这里简单的介绍下,更多请查看官方介绍...2020-06-29
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法,涉及C#针对坐标的数学运算相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇c# 计算时间间隔的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C语言简单实现计算字符个数的方法,涉及C语言针对字符串的简单遍历与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家详细介绍了Unity实现汽车前后轮倒车轨迹计算,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-13
- 这篇文章主要介绍了Go语言计算指定年月天数的方法,实例分析了Go语言操作时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-05
- 这篇文章主要给大家介绍了关于Vue如何使用Dayjs计算常用日期的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-09
- 这篇文章主要为大家详细介绍了C#实现根据年月日计算星期几的函数,感兴趣的小伙伴们可以参考一下...2020-06-25
- date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考。 格式化日期 date() 函数的第一个参数规定了如何...2016-11-25
- 我将提出一个挑战,谁能用SQLSEERVER提出计算素数最好的方法, 我用了一个新的特点CTE和某些TSQL实现,但均不理想,前者(CTE)有限制,而后者(TSQL)产生一百万个素数用了7分种 你可...2016-11-25
- 本文是关于Linux C时间函数 time_t struct tm 进行了详细的分析介绍并有应用实例,希望能帮到有需要的同学...2020-04-25
- 这篇文章主要介绍了C#计算汽车行驶方向的方法,结合实例形式分析了C#数值计算的原理与相关技巧,需要的朋友可以参考下...2020-06-25
- 本文章来给大家介绍关于PHP计算上一个月的今天 今天是星期几的程序演示实例过程,各位有需要了解的朋友可参考。 上一个月的今天 strtotime 有个小问题 代...2016-11-25
- 这篇文章主要介绍了C语言科学计算入门之矩阵乘法的相关计算,文章中还介绍了矩阵相关的斯特拉森算法的实现,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了Vue3 响应式侦听与计算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-11
- 这篇文章主要介绍了PHP 常用时间函数资料整理的相关资料,需要的朋友可以参考下...2016-11-01
- 在文章里面我说了很多关于php计算时间间隔实现程序代码的实现方法原理以及分析如何来做这个功能,有需用的同学可以仔细看看哦。 下面实例是告诉我们在论坛有看到关...2016-11-25