-5

我的网站有一个用户系统。我需要做一些事情,使今天的日期增加 30 天。

更新:我决定使用整数而不是日期。

这就是我所做的。我进行了设置,以便当有人支付账单时,它将他们的“天”值设置为(值)+ 30

我做了一个 cron 工作,从每个用户的“天”中抽出 1 天。显然,我将 cron 作业设置为每天运行一次。

4

6 回答 6

9

使用strtotimedate如下。

echo date('Y-m-d', strtotime("+30 days"));

或者

<?php
   echo date('Y-m-d h:i:s')."\n";

   echo date('Y-m-d h:i:s', mktime(date('h'),date('i'),date('s'),date('m'),date('d')+30,date('Y')))."\n";

?>
于 2013-03-08T07:48:17.183 回答
3

首先你可以像这样添加日期

$iSecsInDay = 86400;
$iTotalDays = 30;
$user_signup = time() + ($iSecsInDays * $iTotalDays);

然后你可以使用时间戳以任何你想要的方式生成日期,比如

$date = date('d-m-Y', $user_signup);

完整的参考可以在这里找到。http://php.net/manual/en/function.date.php

于 2013-03-08T07:51:36.043 回答
2

使用strtotime函数。

strtotime('+30 days', time());
于 2013-03-08T07:47:52.223 回答
1

如果您想将 +30 天添加到实际日期并在 mysql 中引入,您可以使用:

$nextMonthDate = date("Ymd H:i:s", strtotime("+30 days",time()));

Ymd H:i:s 是 MySQL DATETIME 的格式。

例子:

实际日期:echo echo date("Ymd H:i:s",time()); --> 2013-03-08 00:37:23

+30 天: echo date("Ymd H:i:s", strtotime("+30 days",time())); --> 2013-04-07 00:37:23

于 2013-03-08T08:40:19.583 回答
1

$NewDate=Date('y:m:d', strtotime("+30 days"));

strtodate()

int strtotime ( string $time [, int $now = time() ] )

该函数期望得到一个包含英文日期格式的字符串,并将尝试将该格式解析为 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数),相对于现在给出的时间戳,或如果没有提供现在的当前时间。

于 2013-03-08T07:49:42.330 回答
0

您不能将函数直接分配给类的变量。这就是您收到附加错误的原因。考虑将其移至您的构造函数。

... 
private $user_signup = null;

public function __construct() {
    $date = new DateTime();
    $date->add(new DateInterval('P30D'));
    $this->user_signup = $date->format('Y-m-d');
}
...

另请参阅将函数的结果分配给 PHP 类中的变量?OOP 怪异以获取更多信息。

于 2013-03-08T09:04:50.983 回答