我想用Catalyst MVC框架比较表单中的两个日期字段。
我通过创建我的所有者插件使用FormValidator::Simple::Auto
Valid.pm
with函数
子COMPARE_DATE { my ($self,$params,$args) = @_;
my $start_date = $params->[0];
my $end_date = $params->[1];
unless (defined $start_date and defined $end_date) {
FormValidator::Simple::Exception->throw(
qq/validation "COMPARE_DATE" needs two keys of data./
);
}
return $start_date lt $end_date ? TRUE : FALSE;}
但我不知道如何在profiles.yml中使用
我刚刚使用: start_date尝试了start_date:-rule: COMPARE_DATE,end_date消息:开始日期必须晚于结束日期
但不是成功。
发布于 2014-11-09 04:37:29
你试过DateTime吗?
在我看来,$star_date lt $end_date并没有做你所希望的事情,它是字符串比较,而不是日期比较。
use DateTime;
my $start_date = DateTime->new({ year => $year, month => $month, day => $day });
my $end_date = DateTime->new({ year => $year, month => $month, day => $day });
my $diff = $start_date - $end_date; # returns DateTime::Duration, this should be useful在给定输入的情况下,您必须阅读文档才能使用正确的解析器,本身并不需要自己从字符串中获取日、月、年。
文档非常好,模块非常可靠,它考虑了我们大多数人不会想到的事情;)。
https://stackoverflow.com/questions/26793502
复制相似问题