将以字符串格式存储在db中的数据转换为对象datetime

时间:2018-10-30 07:24:22

标签: php laravel

将信息存储到数据库的前端数据如下:

"recurring_pattern": "{\"freq\":\"1\",\"from_date\":\"2018-10-22\",\"pattern\":\"BYMONTHDAY=4;COUNT=5;\",\"interval\":\"1\"}"

我正在一步一步地将列recurring_pattern中的字符串转换为对象datetime。首先,我检查事件是否重复发生,并且event_type_id为2

$recurring_pattern = Events::select('recurring_pattern')
        ->where('event_type_id', 2)
        ->where('is_recurring', 1)
        ->first();

当我使用dump($ recurring_pattern)时,它们仍显示数据,但是我无法使用RRule将recurring_pattern数据列转换为日期时间。

我已经安装了RRule。我正在将输入的日期与recurring_pattern进行比较。谢谢

1 个答案:

答案 0 :(得分:0)

您必须使用PHP-RRule在服务器端解析字符串并进行比较。

示例:

use RRule\RRule;

$recurring_pattern = Events::select('recurring_pattern')
                        ->where('event_type_id', 2)
                        ->where('is_recurring', 1)
                        ->first();
$rrule = new RRule(json_decode($recurring_pattern['recurring_pattern']));

// Use PHP-RRule Functions To Do Comparing