在laravel 5中选定日期前一天发出通知

时间:2018-06-06 20:12:30

标签: php laravel

我正在处理laravel日期,我希望laravel在数据库中提前一天或相同的选定日期通知我如何才能做到这一点是我的代码的一部分: 这是我的控制器我在电话簿模型中保存remember_date

public function index()
{

    $current_time = Verta::now();
    $phonebooks = Phonebook::with('client')->get();
    return view('admin.phonebooks.index', compact('phonebooks'))->with('current_time',$current_time);
}

这是我的电话簿表的迁移

 public function up()
{
    Schema::create('phonebooks', function (Blueprint $table) {
        $table->increments('id');
        $table->text('title');
        $table->longText('description');
        $table->integer('client_id');
        $table->dateTime('calldate');
        $table->dateTime('rememberdate');
        $table->timestamps();
    });
}

现在我想发出通知,在存储在rememberdate中的前一天或之前给客户打电话。

2 个答案:

答案 0 :(得分:2)

以防万一:如果您只是想要页面上的静态通知部分
如果您只想在页面上显示某些内容作为通知,那么只需根据与通知规则匹配的条件获取数据。

步骤:

  • 获取当前日期(php当前日期)
  • Calculated date:在当前日期(当前日期+ 1天)添加一天
  • 通过将Calculated date与DB
  • 中的rememberdate相匹配来获取记录
  • 如果在DB中找到任何记录,则显示您的通知,如果未找到记录,则显示“未发现通知”

对于日期操作,您可以使用核心php并将一天添加到当前日期。但我建议你在laravel中使用Carbon lib。

使用碳在当前日期时间Link

中添加天数的示例

根据您的评论进行更新:
对不起,实际上我不理解那个日历(jalali日历),但只是添加一天就可以用于任何日历。如果支持您的日历,首先探索Carbon。 但我过去也遇到过类似的问题。尼泊尔有自己的日期和日历系统,我不得不开发一个应用程序。我做的是我做了所有的操作/计算,并在标准时间(英语日期时间)中将数据存储在数据库中serversmysql默认,然后仅在应用程序显示数据时,我以本地格式显示日期时间(尼泊尔的本地日历)。

在网页(UI)上显示数据时,我使用了我编写的日期转换器类将日期时间从尼泊尔日期时间转换为英语日期时间,反之亦然。

答案 1 :(得分:1)

您可以使用Carbon,它为您提供了许多使用日期和时间的功能

$currentTime = Carbon::now();
$clientsToNotif = Phonebook::with('client')->whereDate('rememberdate' , $currentTime->addDays(1))->get();

您现在可以向用户发送任何类型的通知