php strtotime 问题,给出不正确的值?

发布于 2024-08-23 20:04:38 字数 460 浏览 7 评论 0原文

我有这个代码:

$date = '2010-03-08 8:10:20'
$new_date  = date('Y-m-d H:i:s', strtotime($date . " +1 month"));
echo $new_date;

顺便说一句,我已经设置了

date_default_timezone_set('Europe/London');

结果是:2010 年 4 月 5 日,失踪了 3 天。为什么会这样呢?我听说它们是 strtotime 中的一些错误?如果是这样的话,如何获得正确的呢?我的意思是,有没有另一种方法可以替代它:

$new_date  = date('Y-m-d H:i:s', strtotime($date . " +1 month")); // or +2, +3... +100

I have this code:

$date = '2010-03-08 8:10:20'
$new_date  = date('Y-m-d H:i:s', strtotime($date . " +1 month"));
echo $new_date;

Btw, I already set

date_default_timezone_set('Europe/London');

And the result is: 5 April 2010, 3 days missing. Why is it happen? I heard they are some bugs in strtotime? If thats the case, how to get a correct one? I mean, is there another way to replace this:

$new_date  = date('Y-m-d H:i:s', strtotime($date . " +1 month")); // or +2, +3... +100

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多孤肩上扛 2024-08-30 20:04:38

我这样做:

date_default_timezone_set('Europe/London');

$date = '2010-03-08 8:10:20';
$new_date  = date('Y-m-d H:i:s', strtotime($date . " +1 month"));
echo $new_date;

然后

2010-04-08 08:10:20

你就会发现还有其他问题。

I do this:

date_default_timezone_set('Europe/London');

$date = '2010-03-08 8:10:20';
$new_date  = date('Y-m-d H:i:s', strtotime($date . " +1 month"));
echo $new_date;

and get

2010-04-08 08:10:20

so you've got some other issue.

我的鱼塘能养鲲 2024-08-30 20:04:38

使用 mktime 函数:

$date = date ( 'Y-m-d H:i:s', mktime ( arguments ) + one_month_epoch_value) ) ; 

Use mktime Function :

$date = date ( 'Y-m-d H:i:s', mktime ( arguments ) + one_month_epoch_value) ) ; 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文