我在我的视图中使用yii \ jui \ Datepicker 。当我选择日期时,日期字符串输出是正确的。当我点击表单提交时,视图页面中的日期也很完美。
我有一种行为,可以将格式从Y-m-d替换为d / m / Y,然后在从表单到数据库并返回时将其返回。所有这些看起来都很完美。
我遇到的问题是在尝试编辑表单时,Datepicker以m / d / Y格式显示日期,当下拉列表出现时,实际上是d / m / Y但日期不正确。
例如,正确的日期是12/02/2017,这个日期在数据库和视图中(以各自的格式)是正确的,但在编辑表单时,它显示为02/12/2017和下拉列表已选定12月2日。 05/01/17也在Datepicker中显示为5月1日,但在视图和数据库中正确显示为1月5日。
更奇怪的是,这只发生在13日以下的几天。如果设置为13/01/2017,它始终显示为1月13日。 我对dateFormat和dateTimeFormat的格式化设置是" php:d / m / Y"和" php:d / m / Y H:我:s"。我没有" dateFormat"我的Datepicker选项中的选项虽然设置为上面的格式,但它没有任何变化。此外,表单上的模型属性的回显以正确的格式显示日期。这可能是非常简单的事情,但我不知道这里有什么问题。
视图中的DatePicker配置:
<?= $form->field($model, 'complete_by')->widget(\yii\jui\DatePicker::classname(), ['dateFormat' => 'php:d/m/Y'] ); ?>
格式化程序设置:
'formatter' => [
...
'dateFormat' => 'php:d/m/Y',
'datetimeFormat' => 'php:d/m/Y H:i:s',
...
],
答案 0 :(得分:0)
以防万一有人面临同样的问题。我最终转而使用kartik \ date \ DatePicker。我确实,只是替换了类名,这有效!