Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有Zend和Doctrine的日期格式_Php_Mysql_Zend Framework_Date_Doctrine - Fatal编程技术网

Php 带有Zend和Doctrine的日期格式

Php 带有Zend和Doctrine的日期格式,php,mysql,zend-framework,date,doctrine,Php,Mysql,Zend Framework,Date,Doctrine,我正在与Zend和Doctrine合作,并使用jquery日历收集dd/mm/yyyy格式的日期。我需要将其格式化以yyyy/mm/dd的形式输入MySql 我最近开始与Zend和Doctrine合作,所以不确定在哪里以及如何进行这种格式化。有人能帮我吗?我给你一个php函数,它将把日期设为dd/mm/yyyy,并返回yyyy/mm/dd日期 function dateconvert($dateOriginal) { $dateOriginal = preg_replace("/[^0-

我正在与Zend和Doctrine合作,并使用jquery日历收集dd/mm/yyyy格式的日期。我需要将其格式化以yyyy/mm/dd的形式输入MySql


我最近开始与Zend和Doctrine合作,所以不确定在哪里以及如何进行这种格式化。有人能帮我吗?

我给你一个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;
}

我认为你不需要Zend框架或条令来做这件事。您可以使用regexp编写如下内容:

$output = preg_replace('#(\d+)/(\d+)/(\d+)#', '\3/\2/\1', $jQueryInput);
如果您想要一个不太“即时”的解决方案(即更具可扩展性),您还可以使用
日期
/
strotime
组合


希望对您有所帮助,

我建议您将jquery datepiker与意大利语本地化结合使用,以使日历使用意大利语,但要设置datepiker yyy-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'
});

我的问题是应该在什么级别重新格式化日期?使用Zend控制器或条令模型?这里有一种在条令模型级别重新格式化数据的方法:。您也可以在Zend Controller中自己执行此操作,并以正确的格式将值传递给条令。这是可能的,但我不希望输入字段中的日期显示为yyyy-mm-dd。我希望使用更友好的dd/mm/yyyy类型,然后对其进行格式化。这些是设计选项,我喜欢你有一个使用zend和doctrine的意大利开发人员,我所描述的是我的选择。我认为,当用户使用弹出式日历时,不会注意输入字段中存储的值。这不仅仅是一种设计选择。用户可以检查输入的日期。不管怎样,我喜欢把事情做对。我可能会研究条令模型。我还认为,使用行为条令以及如何实现是一个很好的策略,而setDate_name getDate_name可以实现相反的转换。
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);
    }
}