2012-10-01 15 views
2

我已經使用MVCForm創建了一個表單並設置了Model類的擴展Model_Table。在模型類中我有一個日期字段。 我試圖編輯現有的記錄(在模型中使用GET和loadData()),但日期字段填充無效數據,例如如果我保存10/01/2012(M/d/Y),它填充01/10/2012存儲在atk4中的日期值無效MVCForm

我有約會

$config['locale']['time']='H:i:s'; 
$config['locale']['date']='m/d/Y'; 
$config['locale']['date_js']='mm/dd/yy'; 
$config['locale']['datetime']='m/d/Y H:i:s'; 

回答

0

查閱這些Github上鍊接如下配置。也許你可以在那裏找到有用的東西。

https://github.com/atk4/atk4/issues/92

https://github.com/atk4/atk4/issues/89

https://github.com/atk4/atk4/issues/90

我工作的自定義日期,日期時間需要太多,但現在已經把該暫停這個問題,因爲它在我的項目有較低的優先級。

+0

我在https://github.com/atk4/atk4/blob/master/lib/Form/Field/DatePicker.php#L51的set函數中註釋了第62到第65行。現在按預期工作。你能說出評論代碼的目的嗎? – Vinay

+0

我不確定這些行是否正確。然後需要更深入地檢查它們。 _if(!$ value)return parent :: set($ value); _如果value不是,則使用parent(Field_Line)方法設置值。我估計基本沒用。如果格式爲d/m/Y,則嘗試從$值中提取日,月,年的值(默認格式爲 _ @ list($ d,$ m,$ y)= explode('/',$ value) )。 _if($ y)$ value = join('/',array($ m,$ d,$ y)); _如果year被設置(可能提取是正確的,但它缺少驗證),那麼將$ value m/d/Y格式。 _elseif($ m)$ value = join('/',array($ m,$ d)); _否則如果設置了month,則將$ value轉換爲m/d格式。 – DarkSide

+0

說實話 - 這些行看起來很可疑,可能不是100%正確的。稍後我會在項目中討論日期和日期時間本地化問題。那麼我可能會爲此提供一些補丁。 默認情況下(與jQuery UI相同),BTW - ATK4不支持日期時間輸入小部件。您只能使用簡單的文本字段作爲替換,並且不能使用日曆小部件。 – DarkSide