Datepicker给我01 / 01-1970

时间:2019-04-15 12:48:34

标签: php mysql

我有两个页面,其中一个php指令与查询一起包含在其中,另一个页面在操作中会调用第一页的形式。

我有一个带有日期选择器的字段,该字段称为data_scadenza,在第一页上,我对该字段进行了评估:

$data_scadenza = date('Y-m-d',strtotime($_POST['data_scadenza'])); 

查询:

    $updateSQL = sprintf("UPDATE Cassetto_documentale SET nome_file_cassetto=%s, data_scadenza_cassetto=%s, data_revisione=%s, ok_doc_direttore=%s, id_caricato_pdf=%s, data_caricato_pdf=%s, ID_caricato_da_cassetto=%s WHERE ID_doc_casstto=%s",

                           GetSQLValueString($data_scadenza, "date"),
                           GetSQLValueString($data_revisione, "date"),                                           
                           GetSQLValueString($ok_direttore, "text"),
                           GetSQLValueString($_COOKIE['cod_op'], "int"),
                           GetSQLValueString($d_oggi, "date"),
                           GetSQLValueString($ID_utente_convalida, "int"),
                           GetSQLValueString($id_doc, "int"));

然后执行爆炸,并实现表单输入:

$d_scad = $row_doc_cassetto['data_scadenza_cassetto'];

<?php
if ($d_scad == ""){
    //$data_scadenza = date("d/m/Y");
}else{
    $d_scad = explode('-', $d_scad);
    $yy_scad = $d_scad[0];
    $mm_scad = $d_scad[1];
    $gg_scad = $d_scad[2];
    $d_scad = $gg_scad."/".$mm_scad."/".$yy_scad;
}
?>


if ($d_scad == ""){
    $data_scadenza = date("d/m/Y");
}else{
    $d_scad = $d_scad;  
}
?>

<input type="text" name="data_scadenza" class="form-control" id="datetimepicker1" pattern="(0[1-9]|1[0-9]|2[0-9]|3[01])[- /.](0[1-9]|1[012])[- /.][0-9]{4}" value="<?php echo $d_scad;?>" >

问题如下:如果我使用日期选择器选择日期,则会得到一个值01-01-1970,如果我手动将其插入,则所有记录都会被完美记录,我希望选择日期选择器的日期,以便可以在数据库中正确注册?

1 个答案:

答案 0 :(得分:2)

如果我没看错你的问题,这就是你要做什么:

$_POST['data_scadenza'] = "15/04/2019";

echo $data_scadenza = date('Y-m-d',strtotime($_POST['data_scadenza']));
//1970-01-01

这是因为您不能在strtotime中使用dd / mm / yyyy格式。

将输入更改为类似

$_POST['data_scadenza'] = "15-04-2019";

echo $data_scadenza = date('Y-m-d',strtotime($_POST['data_scadenza']));

使用str_replace可以轻松完成。

$_POST['data_scadenza'] = "15/04/2019";

echo $data_scadenza = date('Y-m-d',strtotime(str_replace("/", "-", $_POST['data_scadenza'])));

或使用date_create_from_format()解析输入日期。