我有一个下拉列表,用户可以在其中选择表单上的时区。提交时,我正在寻找使用 Yii 规则验证时区输入字段的最佳方法。
我可以使用以下方法在 PHP 中获取一组时区:
DateTimeZone::listIdentifiers(DateTimeZone::ALL)
这些值是这样的(带有时区值的索引键):
Array([0]=>'Pacific/Midway',[1]=>'Pacific/Niue',...);
我的选择框如下所示:
<select name="timezone" id="timezone">
<option value="Pacific/Midway">Pacific/Midway (GMT-11:00)</option>
<option value="Pacific/Niue">Pacific/Niue (GMT-11:00)</option>
...
</select>
我尝试了以下方法:
public function rules() {
return array(
array('timezone','in','range'=>DateTimeZone::listIdentifiers(DateTimeZone::ALL)),
array(timezone','required'),
);
} // rules()
但它永远不会验证,我认为因为范围是一个多维数组,为了范围工作,它需要只是一个值数组,如 array('value1','value2'); 真的吗?
有更好的方法吗?