Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在YII输入表单中选择日期时间范围_Yii_Datetimepicker - Fatal编程技术网

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

在YII输入表单中选择日期时间范围,yii,datetimepicker,Yii,Datetimepicker,问题就在这里 我必须在我的Yii网站上创建一个提交表单。表单需要输入日期时间范围。为此,我使用“jui datetimepicker”第三方Yii扩展 我使用了两个日期字段,扩展名分别与开始时间和结束时间有关。因此,我想要实现的是能够将开始日期时间限制为将来的时间(不应选择过去的日期或时间),并且结束时间本身应限制为开始时间后最多三个小时 示例:用户希望安排一个事件。他们选择一个日期和时间,当然是在将来。假设他们在开始时间字段中选择3月15日13点作为开始时间。一旦完成并移动到下一个字段(“结

问题就在这里

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

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

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

因此,应根据第一个datetimepicker的输入动态更新第二个datetimepicker

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

这并不是说我想用这个扩展来解决这个问题,如果有人对YII解决方案有任何建议,允许以最干净和有效的方式指定日期时间范围,我将不胜感激

您应该改为使用扩展。

给出了应用程序的API。您应该将以下内容添加到小部件调用中(同时添加“model”、“attribute”等)

“选项”=>数组(
“minDateTime”=>“,
“onSelect”=>“
)
在“onSelect”事件上运行的函数应为第二个dateTime输入字段动态设置minDateTime,例如:

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

如果您需要使链接更精确,前面提供的链接上还有更多示例(例如,如果您希望将开始日期向后推,推后的时间是用户在页面上的时间量,而不是加载页面时设置的时间量,等等)

问题在于,此扩展不允许选择时间范围-它仅用于日期(或者我错了吗?)。不,顾名思义,您可以使用它选择日期范围。参见示例。我不需要日期范围扩展,而需要时间范围选择扩展(如从X点到Y点)
function (selectedDateTime){
<EndDatePickerElement>.datetimepicker('option', 'minDateTime', <start dateTime here using selectedDateTime> );
}