SQL 插入查询不适用于 JQuery UI 日期选择器

SQL insert query not working with JQuery UI datepicker

html输入:

<input name="week_ending" type="text" id="week_ending" value="" />

jQuery:

<script>
    $(function() {
        $( "#week_ending" ).datepicker();
    });
</script>

PHP代码:

$week_ending = db_quote($_POST['week_ending']);

function db_quote($value) {
    $connection = db_connect();
    return "'" . mysqli_real_escape_string($connection,$value) . "'";
}

SQL:

$result = db_query("INSERT INTO `timesheets` (clientid, candid, weekending, department, orderno, basicpay, basiccharge, otpay, otcharge, ot2pay, ot2charge, status, hue, huc) VALUES ($client, $cand, $week_ending, $department, $order_no, $basic_pay, $basic_charge, $ot_pay, $ot_charge, $ot2_pay, $ot2_charge, $status, $hue, $huc)");
    if($result){
        print 'Success! ID of last inserted record is';
    } 
    else {
        die('Error : ' . db_error());
    }

我插入到 timesheets 的每一行都有 0000-00-00 的日期。在timesheetstable.

中数据类型设置为date

在选择日期后检查元素时,HTML 是:

<input class="hasDatepicker" name="week_ending" id="week_ending" value="" type="text">

我猜这解释了 0000-00-00 进入数据库的原因。我尝试添加 .formatDate 但这似乎没有什么不同并尝试更改为 <input type="date"> 但仍然没有任何内容出现在 value 属性

您可以使用 PHP 函数:date()strtotime 将格式解析为时间戳,然后再解析为正确的日期格式。

请注意,用户可以使用错误的数据更改输入字段。

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