我找到了比较时间并获得返回值的脚本。但该脚本未正确验证以下方案。请帮帮我。
脚本路径: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;
}
答案 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 ) );
它对我有用。:)