如何从jqgrid post数据中用PHP数组重新格式化m/d/y中的日期?

如何从jqgrid post数据中用PHP数组重新格式化m/d/y中的日期?,php,jquery,mysql,jqgrid-php,Php,Jquery,Mysql,Jqgrid Php,我有一个jqgrid,它将更新后的数据发送到我的php,以便处理到数据库中。现在,我在将其中三列转换为所需的yyyy-mm-dd格式以注入mysql数据库时遇到了一个问题。如何将此数组中的数据从m/d/Y转换为mysql yyy-mm-dd?如何正确转换以正确处理数据并将其发送到数据库?我真的需要帮助,有什么建议吗 jqgrid模型代码: {name:'lastvisit', index:'lastvisit', width:70, align:'right',formatter: 'date

我有一个jqgrid,它将更新后的数据发送到我的php,以便处理到数据库中。现在,我在将其中三列转换为所需的yyyy-mm-dd格式以注入mysql数据库时遇到了一个问题。如何将此数组中的数据从m/d/Y转换为mysql yyy-mm-dd?如何正确转换以正确处理数据并将其发送到数据库?我真的需要帮助,有什么建议吗

jqgrid模型代码:

{name:'lastvisit', index:'lastvisit', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',editable:true, edittype: 'text',mtype:'POST' ,       editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,


  {name:'cdate', index:'cdate', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy', edittype: 'text',editable:true ,mtype:'POST' ,editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,

  {name:'ddate', index:'ddate', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',date:'true',editable:true, edittype: 'text',editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
以下是我的PHP代码:

/* columns array format:  $_POST['VARIABLE'] => 'DB column name' */
$crudColumns =  array(
    'id'=>'id'
    ,'name'=>'name'
    ,'id_continent'=>'id_continent'
,'lastvisit'=>'lastvisit'
    ,'cdate'=>'cdate'
    ,'ddate'=>'ddate'

);
然后对其进行清洁并准备好进行处理:

/*----====|| GET and CLEAN THE POST VARIABLES ||====----*/
foreach ($postConfig as $key => $value){ 
    if(isset($_REQUEST[$value])){
        $postConfig[$key] = fnCleanInputVar($_REQUEST[$value]); 
    }
}
foreach ($crudColumns as $key => $value){ 
    if(isset($_REQUEST[$key])){
        $crudColumnValues[$key] = '"'.fnCleanInputVar($_REQUEST[$key]).'"';
    }
} 
数据库连接然后发送到数据库以更新行:

case $crudConfig['update']:
        /* ----====|| ACTION = UPDATE ||====----*/
        if($DEBUGMODE == 1){$firephp->info('UPDATE','action');}
        $sql = 'update '.$crudTableName.' set ';
        /* create all of the update statements */
        foreach($crudColumns as $key => $value){ $updateArray[$key] = $value.'='.$crudColumnValues[$key]; };
        $sql .= implode(',',$updateArray);
        /* add any additonal update statements here */
        $sql .= ' where id = '.$crudColumnValues['id'];
        if($DEBUGMODE == 1){$firephp->info($sql,'query');}
        mysql_query( $sql ) 
        or die($firephp->error('Couldn t execute query.'.mysql_error()));
        break;

我可能不理解这个问题,但如果你问如何从一种日期格式转换为另一种格式

$bad_date = '5/16/2013';
$good_date = date('Y-m-d', strtotime($bad_date)); // returns 2013-05-16
。。。您可以像这样更改
foreach($crudColumns)
代码

foreach ($crudColumns as $key => $value){ 
    if(isset($_REQUEST[$key])){
        if ($key == 'lastvisit' || $key == 'cdate' || $key == 'ddate') {
            $crudColumnValues[$key] = '"'.date('Y-m-d', strtotime($_REQUEST[$key])).'"';
        } else {
            $crudColumnValues[$key] = '"'.fnCleanInputVar($_REQUEST[$key]).'"';
        }
    }
} 

谢谢,但问题是如何将其集成到这个php系统中,以便将lastVisite、cdate和ddate转换为good_date,然后以正确的格式发布到我的数据库行中?我将在哪里介绍它?总的来说,任何指导都是很大的帮助。我明白了。。。马上更新答案我已经重新整理了上面的答案。是否成功?否。返回以下内容:查询:更新演示集id=“522”,name=“ooisii8485859595”,id_contraction=“Ramon”,lastvisit=1969-12-31,cdate=1969-12-31,ddate=1969-12-31,其中id=“522”,这似乎是一个问题,因为他们的日期不是我输入的日期,他们周围没有引号。日期出来是错误的,但他们张贴罚款。例如:我发布了这个:cdate 8/17/2013 ddate 12/19/2013 lastVisite:5/12/2013,结果是lastVisite=“1969-12-31”,cdate=“1969-12-31”,ddate=“1969-12-31”