使用子程序比较perl中的时间

时间:2016-02-09 11:36:02

标签: perl

我找到了比较时间并获得返回值的脚本。但该脚本未正确验证以下方案。请帮帮我。

脚本路径:http://perlprogramming.language-tutorial.com/2012/10/perl-function-to-compare-two-dates.html#recent

 public function search($params)
    {
        $query = BusRoute::find();
        $query->joinWith(['stop']);

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        $query->andFilterWhere([
            'id' => $this->id,
            'schedule_id' => $this->schedule_id,
            'departure_time' => $this->departure_time,
            'stop_id' => $this->stop_id,
            'route_order' => $this->route_order,
            'is_destination' => $this->is_destination,
        ]);


        return $dataProvider;
    }

2 个答案:

答案 0 :(得分:4)

教程中存在一个错误:它会将时间分为-,而不是:(即使他们在示例中使用:)。

但你根本不需要这个功能。可以通过标准cmp运算符比较此格式的日期。

答案 1 :(得分:0)

我修改了代码

来自

push(@marr_date1,split(/-/, $mstr_onlytime1));
push(@marr_date2,split(/-/, $mstr_onlytime2));

push( @marr_date2, split( /[-:]/, $mstr_onlydate2 ) );
push( @marr_date2, split( /[-:]/, $mstr_onlytime2 ) );

它对我有用。:)