PHP中使用mktime获取时间戳的一个黑色幽默

mktime(hour,minute,second,month,day,year,is_dst)这是mktime的语法说明,一目了然应该不难写出一个时间戳的代码来!

下面这段代码是网上大多数人给出的时间戳现实,这个一看便知只能说是取得当前日期,而不能算是时间戳,不用多解释了吧!
1 $now = mktime(0,0,0,date("m"),date("d"),date("Y"));
2 echo "now is ".date("Y/m/d", $now);

显示结果:

now is 2012/05/30

显然这不是我想要的结果。

于是,按照旧有的思维,我想当然的改造成下面这个形式:

1 $now = mktime(date("h"),date("M"),date("s"),date("m"),date("d"),date("Y"));
2 echo "now is ".date("Y/M/d h:i:s", $now);

注意红色的部分,通常如果月份用m,那么分钟就应该是M。或者前者用M,后者用m。

显示结果:
Warning: mktime() expects parameter 2 to be long, string given in D:\usr\webroot\testPHP\index.php on line 46
now is 1970/01/01 08:Jan:00

看来主观臆断是不可取的,PHP的语法和其他的语言还是有些区别的。

 

不卖关子了,还是直接给大家正确的答案

1 $now = mktime(date("h"),date("i"),date("s"),date("m"),date("d"),date("Y"));
2 echo "now is ".date("Y/m/d h:i:s", $now);

哈哈~是“i”而不是什么m或者M,这里给出大家这个示例只是想让PHP的初学少走一些弯路。

至于M是什么意思,大家自己做一下就明白了...嘿嘿!!!

显示结果:

now is 2012/05/30 04:54:25

 

网络上互相复制文章的人太多,没有多少人去深究这个,让如我一样的PHP初学者无所适从。大家拷贝复制之前是不是多动动手自己实现一下在写出了,对自己是个提高,对读者也是一直负责的态度。

posted @   meil  阅读(1425)  评论(7编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2007-05-30 让你的Blog重获青春
点击右上角即可分享
微信分享提示