【发布时间】:2013-02-23 16:58:31
【问题描述】:
我的网站有一个用户系统。我需要做一些事情,使今天的日期增加 30 天。
更新: 我决定使用整数而不是日期。
这就是我所做的。我进行了设置,以便当有人支付账单时,它会将他们的“天数”值设置为 (value) + 30
我做了一个 cron 作业,从每个用户的“天数”中抽出 1 天。 显然,我将 cron 作业设置为每天运行一次。
【问题讨论】:
标签: php
我的网站有一个用户系统。我需要做一些事情,使今天的日期增加 30 天。
更新: 我决定使用整数而不是日期。
这就是我所做的。我进行了设置,以便当有人支付账单时,它会将他们的“天数”值设置为 (value) + 30
我做了一个 cron 作业,从每个用户的“天数”中抽出 1 天。 显然,我将 cron 作业设置为每天运行一次。
【问题讨论】:
标签: php
使用strtotime 函数。
strtotime('+30 days', time());
【讨论】:
如下使用strtotime 和date。
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";
?>
【讨论】:
$NewDate=Date('y:m:d', strtotime("+30 days"));
int strtotime ( string $time [, int $now = time() ] )
该函数期望得到一个包含英文日期格式的字符串,并将尝试将该格式解析为 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数),相对于给出的时间戳现在,如果没有提供现在,则为当前时间。
【讨论】:
首先你可以像这样添加日期
$iSecsInDay = 86400;
$iTotalDays = 30;
$user_signup = time() + ($iSecsInDays * $iTotalDays);
然后您可以使用时间戳以任何您想要的方式生成日期,例如
$date = date('d-m-Y', $user_signup);
完整的参考可以在这里找到。 http://php.net/manual/en/function.date.php
【讨论】:
如果您想在实际日期上加上 +30 天并在 mysql 中引入,您可以使用:
$nextMonthDate = date("Y-m-d H:i:s", strtotime("+30 days",time()));
Y-m-d H:i:s 是 MySQL DATETIME 的格式。
示例:
实际日期: echo echo date("Y-m-d H:i:s",time()); --> 2013-03-08 00:37:23
+30 天:echo date("Y-m-d H:i:s", strtotime("+30 days",time())); --> 2013-04-07 00:37:23
【讨论】:
您不能将函数直接分配给类的变量。这就是您收到附加错误的原因。考虑将其移至您的构造函数。
...
private $user_signup = null;
public function __construct() {
$date = new DateTime();
$date->add(new DateInterval('P30D'));
$this->user_signup = $date->format('Y-m-d');
}
...
另请参阅Assigning a function's result to a variable within a PHP class? OOP Weirdness 了解更多信息。
【讨论】: