找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 660|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 08:28:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

显示结果:
now is 2012/05/30
显然这不是我想要的结果。
于是,按照旧有的思维,我想当然的改造成下面这个形式:
[U]复制代码[/U] 代码如下:
$now = mktime(date("h"),date("M"),date("s"),date("m"),date("d"),date("Y"));
echo "now is ".date("Y/M/d h:i:s", $now);

注意红色的部分,通常如果月份用m,那么分钟就应该是M。或者前者用M,后者用m。
显示结果:
[U]复制代码[/U] 代码如下:
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的语法和其他的语言还是有些区别的。
不卖关子了,还是直接给大家正确的答案
[U]复制代码[/U] 代码如下:
$now = mktime(date("h"),date("i"),date("s"),date("m"),date("d"),date("Y"));
echo "now is ".date("Y/m/d h:i:s", $now);

哈哈~是“i”而不是什么m或者M,这里给出大家这个示例只是想让PHP的初学少走一些弯路。
至于M是什么意思,大家自己做一下就明白了...嘿嘿!!!
显示结果:
[U]复制代码[/U] 代码如下:
now is 2012/05/30 04:54:25

网络上互相复制文章的人太多,没有多少人去深究这个,让如我一样的PHP初学者无所适从。大家拷贝复制之前是不是多动动手自己实现一下在写出了,对自己是个提高,对读者也是一直负责的态度。
            
            
您可能感兴趣的文章:
  • PHP时间戳使用实例代码
  • php strtotime 函数UNIX时间戳
  • php 计算两个时间戳相隔的时间的函数(小时)
  • PHP 时间转换Unix时间戳代码
  • php microtime获取浮点的时间戳
  • PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
  • PHP得到某段时间区间的时间戳 php定时任务
  • PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
  • php日期转时间戳,指定日期转换成时间戳
  • Javascript的时间戳和php的时间戳转换注意事项
  • PHP时间戳与日期之间转换的实例介绍
  • 解析php时间戳与日期的转换
  • 使用php 获取时间今天明天昨天时间戳的详解
  • php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
  • PHP时间戳 strtotime()使用方法和技巧
  • php 创建以UNIX时间戳命名的文件夹(示例代码)
  • php时间戳转换的示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端