在YII输入表单中选择日期时间范围

时间:2013-03-12 13:10:08

标签: yii datetimepicker

这是问题所在。

我必须在基于Yii的网站上创建提交表单。表单需要输入日期时间范围。为此我使用“jui datetimepicker”第三方Yii扩展名。

http://www.yiiframework.com/extension/datetimepicker/

我使用两个日期字段,分别与开始和结束时间有关。因此,我想要实现的是能够将开始日期时间仅限于将来的时间(既不应选择过去的日期也不应选择时间),并且结束时间本身应限制在开始时间之后的最多三小时。

示例:用户想要安排活动。他们选择日期和时间,这当然是将来的。假设他们选择3月15日13点作为开始时间字段的开始时间。一旦完成并移动到下一个字段(“结束时间”),相应的datetimepicker将限制从3月15日13:00到3月15日16:00的时间范围。

因此,应根据第一个日期时间选择器的输入动态更新第二个datetimepicker。

可以在datetimepicker中指定从当前日期开始的日期范围,但是时间选择没有类似的内容,因此用户仍然可以选择已经过的时间。

如果有人对YII解决方案有任何建议允许以最清晰有效的方式指定日期时间范围,那么我并不是想用这个扩展来解决这个问题 - 我们将非常感激。

2 个答案:

答案 0 :(得分:0)

您应该使用edaterangepicker扩展名。

答案 1 :(得分:0)

给出jquery timepicker addon的API。你应该在你的小部件调用中添加以下内容(与'model','attribute'等一起)

'options'=>array(
'minDateTime'=>'<start dateTime here>',
'onSelect'=>'<JS function to run>'
)

您在“onSelect”事件上运行的函数应该为第二个dateTime输入字段动态设置minDateTime,例如:

function (selectedDateTime){
<EndDatePickerElement>.datetimepicker('option', 'minDateTime', <start dateTime here using selectedDateTime> );
}

如果你需要让它更加精确,那么前面提供的链接还有更多的例子(比如说你希望开始日期被推迟到用户在页面上的时间而不是设置它当页面被加载等等...)