我无法保存日期和时间值。我尝试了不同的格式,这里是实际尝试。
我的表单中的验证器:
$datum=$this->CreateElement('text','datum')
->setAttrib('size', '10')
->addValidator(New Zend_Validate_Date('MM-DD-YYYY'));
$zeit=$this->CreateElement('text','zeit')
->setAttrib('size', '10')
->addValidator(new Zend_Validate_Date(array('format' => 'H:i:s')));
我的Controller addAction的片段
if ($this->getRequest()->isPost()) {
$formData = $this->getRequest()->getPost();
if ($form->isValid($formData)) {
$logenr = $this->_getParam('kopfnr', 0);
$kopfnr = $logenr;
$dat= $form->getValue('datum');
$zeit = $form->getValue('zeit');
$thema = $form->getValue('thema');
$aktermine = new Application_Model_DbTable_Aktermine();
$aktermine->addTermine( $kopfnr, $dat, $zeit, $thema);
而且,我的数据库类中的add函数:
public function addTermine($kopfnr, $datum, $zeit, $thema)
{
$data = array(
'kopfnr' => $kopfnr,
'datum' => $datum,
'zeit' => $zeit,
'thema' => $thema,
);
$this->insert($data);
}
我在WAMP安装上使用mySQL数据库。
我的错误在哪里?作为一个我想说的话,我得到一个新的记录,“thema”的值和键被正确保存,所以我认为它必须是某种格式的东西。
编辑:我收到了新记录,但字段的日期和时间都是空的。我没有错误新:我在我的控制器中添加了一个调试测试,看看日期值是什么,这是答案:
string '01 -04-2016'(长度= 10) (我在2016年4月1日投入)
答案 0 :(得分:1)
通过阅读你的评论,我知道你有两个问题。第一个是将日期放入表中,第二个是让用户使用正常的日期格式(dd / mm / yyyy)。
在将用户输入放入数据库之前重新格式化用户输入时,第一个问题就解决了。您可以将以下行添加到$form->isValid($formData)
部分:
$dat = (new DateTime($form->getValue('datum')))->format('Y-m-d');
此oneliner会将日期从'dd-mm-yyyy'转换为'yyyy-mm-dd'。
答案 1 :(得分:0)
谢谢,在调试建议之后我更改了我的日期格式,如下所示:$test1=date('Y/m/d',strtotime($dat));
现在它有效!