`

strtotime("+1 month", $strtimes) 导致时间戳错误

阅读更多

如果要获取当前时间中未来一个自然月的这个linux时间戳时

 

使用  $nexttime = strtotime("+1 month", $strtimes); 是不精确的,尤其$strtimes无效时。

 

因为PHP “+1 month” 默认是30天,strtotime “+1 month”大月31、小月30、2月是28因此会导致时间戳错误

 

要使用

$nexttime =mktime(date("H"),date("i"),date("s"),date("m")+1,date("d"),date("Y"));

 

如果说时间是2013-02-29(此时间的linux值实现为2013-03-01),而需要逻辑处理后是2013-03-29;所以需要做加一个月处理,万一在处理时间的时候是 strtotime("+1 month",strtotime("2013-02-29"))的方法;得出的时间是:2013-04-01;因此会导致一系列的时间相减为负数。

 

注:别说 2013-02-29 是不存在,这全世界人民都知道,可有时候程序中会存在的。

 

实例:

$str1 = strtotime("2013-02-29 14:35:59");

echo (time() - strtotime("+1 month",$str1))/(24*3600);  //为负

$nexttime =mktime(date("H",14),date("i",35),date("s",59),date("m",02)+1,date("d",29),date("Y",2013));

echo (time() - $nexttime)/(24*3600);  //为正

分享到:
评论

相关推荐

    Javascript模仿php中strtotime()函数实现时间字符串转时间戳方法

    强制返回整数型时间戳,如果错误返回false document.write(strtotime('now')); document.write(strtotime('next Sunday')); document.write(strtotime('last month')); document.write(strtotime('+1 weeks')); ...

    PHP常用日期加减计算方法实例小结

    我们可以利用这个函数进行日期的加减,例如`strtotime("-1 day")`表示前一天,`strtotime("+1 day")`表示后一天,以此类推。通过这种方式,我们可以轻松地获取昨天、明天、一周后、一个月前或十年后的日期。 在上述...

    PHP时间戳 strtotime()使用方法和技巧

    在php中我想要获取时间戳有多种方法,最常用的就是使用time函数与strtotime()函数把日期转换成时间戳了,下面我来给大家分享一下时间戳函数 strtotime用法。获取指定的年月日转化为时间戳:pHP时间戳函数获取指定...

    php strtotime 函数UNIX时间戳

    5. `strtotime("+1 week 2 days 4 hours 2 seconds")`:增加一周、两天、四小时和两秒,返回对应的 Unix 时间戳。 6. `strtotime("next Thursday")`:返回下个星期四的 Unix 时间戳。 7. `strtotime("last Monday")`...

    PHP使用strtotime获取上个月、下个月、本月的日期

    $lastday = date("Y-m-d", strtotime("$firstday +1 month -1 day")); return array($firstday, $lastday); } ``` 这个函数首先获取指定日期的月份的第一天,然后通过加1个月再减去1天来得到该月的最后一天。 ...

    PHP下获取上个月、下个月、本月的日期(strtotime,date)

    $lastday = date("Y-m-d", strtotime("$firstday +1 month -1 day")); return array($firstday, $lastday); } ``` 这个函数接受一个日期字符串 `$date`,如 "2014-02",并返回一个数组,包含该月的第一天和最后一...

    PHP时间戳格式全部汇总 (获取时间、时间戳)

    $timestamp = strtotime("+1 day"); echo date("Y-m-d H:i:s", $timestamp); // 输出明天的日期和时间 // 昨天此时的时间戳 $timestamp = strtotime("-1 day"); echo date("Y-m-d H:i:s", $timestamp); // 输出昨天...

    PHP 循环输出今天及以后九天的时间.rar

    echo "第 {$i+1} 天:{$date}\n"; } ?> ``` 在这个代码中,我们创建了一个从0到9的循环,每次迭代都会增加一天。`strtotime("+{$i} day")`会计算当前日期之后的第$i天,然后`date('Y-m-d')`将得到的Unix时间戳转换...

    PHP时间戳与日期之间转换

    PHP时间戳与日期之间转换 echo(strtotime("now")); echo(strtotime("3 ... echo(strtotime("+1 week 3 days 7 hours 5 seconds")); echo(strtotime("next Monday")); echo(strtotime("last Sunday")); ?>

    php使用date和strtotime函数输出指定日期的方法

    本文实例讲述了php使用date和strtotime函数输出指定日期的方法。分享给大家供大家参考。...strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳 复制代码 代码如下:date_default_timezone_set(‘Asia

    PHP获取本周所有日期或者最近七天所有日期的方法

    希望可以帮助到有需要的朋友 获取本周所有日期: /** * 获取本周所有日期 */ function get_week($time = '', $format='Y-m-d'){ $time = $time !... $date[$i] = date($format ,strtotime( '+' . $

    PHP中时间加减函数strtotime用法分析

    $date_next_year = date('Y-m-d', strtotime("$date + 1 year")); // 加一年 $date_previous_year = date('Y-m-d', strtotime("$date - 1 year")); // 减一年 ?> ``` #### 天数加减 增加或减少天数的示例如下: ``...

    如何使用PHP计算上一个月的今天

    注意在构建日期字符串时,应避免出现可能导致错误的字符串操作,如`"Y-" . date("m", $last_month_time) . "-d"`,而应该使用`date('Y-m', $last_month_time) . '-d'`来确保跨年计算的准确性。 除了使用`mktime()`...

    PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】

    echo "一个月后:", date("Y-m-d", strtotime("+1 month")), "<hr>"; ``` 甚至可以计算十年后的日期: ```php echo "十年后:", date("Y-m-d", strtotime("+10 year")), "<hr>"; ``` 这些例子展示了PHP如何灵活处理...

    php中strtotime函数用法详解

    echo strtotime("+1 week 2 days 4 hours 2 seconds"), " "; echo strtotime("next Thursday"), " "; echo strtotime("last Monday"); ``` 此外,`strtotime()`也可以用于计算一年中的工作日,通过排除周末和特定...

    PHP 的一个简单的日历

    $start_day = date('N', strtotime("$year-$month-01")); // 获取月份的第一天是星期几 // 填充日历 $day = 1; for ($i = 0; $i ($calendar); $i++) { for ($j = 0; $j ($calendar[$i]); $j++) { if ($day > $...

    unix时间戳转换查询小工具

    Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不包括闰秒。这个时间点被称为“Unix纪元”。在编程中,Unix时间戳通常用于存储和比较日期和时间,因为它们是整数,易于计算和比较。PHP作为常见的...

    字符串和时间戳相互转换

    var newDateString = dateObject.getFullYear() + "-" + (dateObject.getMonth()+1) + "-" + dateObject.getDate() + " " + dateObject.getHours() + ":" + dateObject.getMinutes() + ":" + dateObject.getSeconds...

Global site tag (gtag.js) - Google Analytics