簡體   English   中英

如何用jqgrid post data中的PHP數組重新格式化m / d / y中的日期?

[英]How to reformat dates in m/d/y with in PHP array from jqgrid post data?

我有一個jqgrid,它將更新后的數據發送到我的php,以便處理到數據庫。 現在我有一個問題,將其中三列轉換為所需的yyyy-mm-dd格式,以便注入到mysql數據庫中。 我如何將該數組中的數據從m / d / Y轉換為mysql yyyy-mm-dd?我該在哪里正確轉換,以便正確處理數據並將其發送到數據庫? 請我真的需要幫助嗎?

在此處輸入圖片說明

jqgrid Colmodel代碼:

{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]).'"';
        }
    }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM