php之strtotime需注意

栏目: PHP · 发布时间: 6年前

内容简介:php之strtotime需注意打印出来的结果是:上面的这些都没有问题,毕竟day和week的时间是固定的,但是month就不一样了,有大月和小月

php之strtotime需注意

var_dump(date('Y-m-d'));
var_dump(date('Y-m-d', strtotime('- 1 day')));
var_dump(date('Y-m-d', strtotime('+ 2 day')));
var_dump(date('Y-m-d', strtotime('- 1 week')));
var_dump(date('Y-m-d', strtotime('+ 2 week')));

打印出来的结果是:

string(10) "2018-10-09"
string(10) "2018-10-08"
string(10) "2018-10-11"
string(10) "2018-10-02"
string(10) "2018-10-23"

上面的这些都没有问题,毕竟day和week的时间是固定的,但是month就不一样了,有大月和小月

var_dump(date("Y-m-d", strtotime("-1 month", strtotime("2018-05-31"))));

打印出来的结果是:

string(10) "2018-05-01"

!!!怎么回事儿,我希望得到的是 2018-04-30 。看了 鸟哥的这篇博客 知道了其中原委。

那上面的 2018-05-31 举例子, -1 month 应该是 2018-04-31 ,但是4月没有31号, 所以结果就是 2018-05-01

如果要获取 上一个月最后一天 ,可以使用 last day of -1 month 来获取,如下图所示

var_dump(date("Y-m-d", strtotime("last day of -1 month", strtotime("2018-05-31"))));

打印结果是:

string(10) "2017-04-30"

为了避免 strtotime 引起的问题,还可以使用 mktime 来解决一些问题,比如说:

每月最后一天最后一秒需要汇总一下当月的某些业务指标,发送给老板。

那么开始时间和结束时间,就可以这样:

mktime的语法是这样的: mktime(hour,minute,second,month,day,year);

$startTime = date('Y-m-d H:i:s', mktime(0, 0, 0, date('m'), date('d'), date('Y')));
$endTime = date('Y-m-d H:i:s', mktime(23, 59, 59, date('m'), date('d'), date('Y')));

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Node.js in Action

Node.js in Action

Mike Cantelon、Marc Harter、TJ Holowaychuk、Nathan Rajlich / Manning Publications / 2013-11-25 / USD 44.99

* Simplifies web application development * Outlines valuable online resources * Teaches Node.js from the ground up Node.js is an elegant server-side JavaScript development environment perfect for scal......一起来看看 《Node.js in Action》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具