当前位置: 首页 > 知识库问答 >
问题:

Laravel日期差异与碳[重复]

郏景澄
2023-03-14

我正试图在过期日期前三天发送电子邮件,,但我不知道如何发送?

思维方式

  1. 检索剩余三天到期的所有订阅者
  2. 发送电子邮件给他们的用户

代码

表我需要检查名为订阅的时间戳。

$subscribes = Subscribe::all();

这个表有一个名为expires_at的列,我需要检查它以找到还剩3天。

还有我的邮件

Mail::to($user->email)->send(new SubscribeExpire($user, $subscribe));

我对碳计算感到困惑,有人能帮我吗?

根据下面的答案,我现在有了这个:

$subscribes = Subscribe::where('expires_at', Carbon::now()->subDays(3))->get();
        $user = [];
        $package = [];
        foreach($subscribes as $subscribe){
            $user = User::where('email', $subscribe->email);
            $package = Package::where('id', $subscribe->package_id);
        }

        Mail::to($user->email)->send(new SubscribeExpire($user, $package));

但是当我运行命令时,它会得到这个错误

ErrorException  : Trying to get property 'email' of non-object

共有2个答案

万高畅
2023-03-14

使用subDay()方法,如下所示:

$subscribes = Subscribe::where('expires_at', Carbon::now()->subDays(3))->get();
鱼志学
2023-03-14
  // here you get subscribes  
  // if you are going to send three days before the expiry date, this means we need to check if expires_at is in three days so probably need to add days. Or maybe even check if time left before expiration is more than three days and less than one day and run it once per day?
  $subscribes = Subscribe::whereDate('expires_at', Carbon::now()->addDays(3))->get();
    $user = [];
    $package = [];
    foreach($subscribes as $subscribe){
        // you probably have only one user with this email
        $user = User::where('email', $subscribe->email)->first();
        // you probably have one associated package
        $package = Package::where('id', $subscribe->package_id)->first();
    }
    // check if user and package are found
    if(is_object($user) && is_object($package)){
      Mail::to($user->email)->send(new SubscribeExpire($user, $package));
    }
 类似资料:
  • 希望我没有生气,我只是错过了一些东西。我在Laravel5.0上有一个项目,每次收到请求时都会调用requestExpired函数。现在,要计算服务器上的当前时间与我使用的请求中的时间戳之间的差异: 由于某些原因,请求总是被拒绝,因为它已过期。当我从上面调试这两行并转储数据时,我得到: 请求的时间戳为:1423830908279 $NOW对象:碳\碳对象 ( [日期]= $POSTEDTIME对象

  • 在config/app.php中,我将时区设置如下: 这是否意味着在我的应用程序中的任何地方,如果我调用这些carbon方法,它们都将是UTC,或者我仍然需要添加时区,例如carbon::now(“UTC”)?

  • 我试图得到用户列表与<代码>created_at日期超过<代码>30天,但它得到用户甚至今天的日期。 获取注册日期为30天的用户。 如果验证日期为空,请删除它们。 即使我今天注册,我的验证日期为空,我的帐户也会删除。

  • 问题内容: 我有一个PostgreSQL函数来计算日期差: 如果直接减去日期,则会计算出差额。但是在我的情况下,日期在变量as和中存在,这导致了问题。 如何减去变量中包含的日期? 问题答案: 除错 你的函数是做可以做 很多 简单。语法错误的实际原因在这里: 看来您正在尝试转换为,这是毫无意义的,因为您的参数已声明为已经。 这也行不通。我在这里引用手册: 为避免语法歧义,“字符串”类型的语法只能用于

  • 我的发票上有两个日期, 什么是得到这些日期之间的区别的最佳方法? 提前道谢!

  • 我试图从模型“用户”中提取对象,其日期从今天算起已经超过30天了。 碳::现在()== 如何做到这一点?