2011-10-04 58 views
2

我正在使用Zend和Doctrine並使用jQuery日曆以dd/mm/yyyy格式收集日期。我需要格式化它以yyyy/mm/dd形式輸入MySql。使用Zend和Doctrine的日期格式

我最近開始使用Zend和Doctrine,所以不知道這個格式應該在哪裏以及如何完成。可以請別人幫我嗎?

回答

1

我勸你jQuery的datepiker使用這種可能性與意大利的定位,纔能有在意大利的日曆,但設置的格式datepiker YYYY-MM-DD,所以我在將數據保存在數據庫中的任何更改都沒有問題。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/i18n/jquery.ui.datepicker-it.js"></script> 

//DatePicker 
$('.inputDate').datepicker({ 
    dateFormat: 'yy-mm-dd' 
}); 

OR

現在它發生,我認爲如果你堅持你的選擇,你可以使用原則的行爲:http://www.doctrine-project.org/blog/using-behaviors-to-share-relationship-properties

看的例子setPassword。

您可以實現這樣的事情:

class NameModel extends BaseNameModel 
{ 
    public function setDate_name($date_name) 
    { 
     list($d, $m, $y) = explode("-", $date_name); 
     $newDateName = $y."-".$m."-".$d; 
     $this->_set('date_name', $newDateName); 
    } 
} 
+0

這是可能的,但我不希望日期在輸入字段中顯示爲yyyy-mm-dd。我想要一個更友好的dd/mm/yyyy類型然後格式化它。 – FFSS

+0

這些都是設計選擇,我喜歡你有一個意大利開發人員使用zend和教條,我所描述的是我的選擇。 我認爲,當用戶使用彈出式日曆不注意存儲在輸入字段中的值。 – JellyBelly

+0

添加另一種方法! ;) – JellyBelly

0

我給你的PHP函數將採取日期爲dd/mm/yyyy並返回yyyy/mm/dd日期。

function dateconvert($dateOriginal) 
{ 
    $dateOriginal = preg_replace("/[^0-9\/]/","",$dateOriginal); //sanitizing 
    $temp = explode("/",$dateOriginal); 
    $dateNew = $temp[2]."-".$temp[1]."-".$temp[0]; 
    $dateNew = date("Y-m-d", strtotime($dateNew)); 
    return $dateNew; 
} 
0

我不認爲你需要Zend Framework或Doctrine來做到這一點。你可以只寫類似於以下,使用正則表達式:

$output = preg_replace('#(\d+)/(\d+)/(\d+)#', '\3/\2/\1', $jQueryInput); 

如果你想要一個不那麼「立竿見影」的解決方案(即,更可擴展),你也可以使用一個date/strtotime組合。

希望幫助,

+0

我的問題是應該的日期被重新格式化什麼樣的水平?使用Zend Controller或Doctrine Model? – FFSS

+0

在這裏,您可以在Doctrine模型級別重新格式化數據:http://stackoverflow.com/questions/3216586/doctrine-change-date-format-when-getting-and-setting-field-values。你也可以在Zend控制器中自己做,並以正確的格式將值傳遞給Doctrine。 – dinopmi