【问题标题】:date_add() expects parameter 1 to be DateTime, string givendate_add() 期望参数 1 为 DateTime,给定字符串
【发布时间】:2017-04-07 07:12:43
【问题描述】:

我正在尝试获取当前日期并将其添加 7 以计算项目每周分期付款的日期。这样做时我遇到了一个问题:-

date_add() 期望参数 1 是 DateTime,给定字符串

导致我这个错误的行是

$loan->nextpremiumdate=date_add(date("Y-m-d h:i:sa"),date_interval_create_from_date_string("1 days"));

我正在使用 laravel 框架。并且 nextpremiumdate 是我的贷款表中的列。

【问题讨论】:

  • $loan->nextpremiumdate=date_add(new DateTime("Y-m-d h:i:sa"),date_interval_create_from_date_string("1 days"));$loan->nextpremiumdate=date_add(new DateTime("now"),date_interval_create_from_date_string("1 days"));
  • 请尝试该代码:(new \DateTime())->add( \DateInterval::createFromDateString("1 days") )

标签: php mysql laravel-5.2


【解决方案1】:

在您的模型表中声明您希望将“nextpremiumdate”作为日期进行管理:

public class Loan extends Model {
       protected $dates = [ "nextpremiumdate" ];
}

然后 laravel 会将该字段作为 Carbon 日期返回,您可以这样做:

$loan->nextpremiumdate = $loan->nextpremiumdate->addDays(7);

您可以参考laravel docscarbon docs了解更多详情。

【讨论】:

  • 非常感谢它运行良好,并且还了解了一个新事物:)
猜你喜欢
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2016-06-26
  • 2021-01-13
  • 2015-07-12
  • 2016-04-30
相关资源
最近更新 更多