【问题标题】:How to insert into database with input type=month?如何使用输入类型 = 月插入数据库?
【发布时间】:2015-03-27 04:24:26
【问题描述】:

billing.php

Expiry Date: <input type="month" id="ccexpirydate" name="ccexpirydate" value="<?php echo $row['expirydate'] ?>"/>

首先,我如何从仅显示月份和年份的数据库中检索?

dobilling.php

$expiryDate = $_POST['ccexpirydate'];

$query = "INSERT INTO bill (ccexpirydate) VALUES ('" . $expiryDate . "')";

其次,在编辑到期日期并提交表单后,如何输入 type=month 更新数据库?仅显示月份和年份。目前,我的数据库将显示 0000-00-00。

【问题讨论】:

  • "我的数据库将显示 0000-00-00" 这意味着列字段 ccexpirydate 是 DATE 类型。它期望输入变量是 DATE 类型,而不仅仅是月份。你也没有提到你正在使用哪个 SQL 数据库。
  • 如果要将mm-yyyy格式存储到DB中,请尝试将ccexpirydate的列字段类型更改为varchar(8)

标签: php date input credit-card


【解决方案1】:

日期输入以标准格式传递。无论向用户显示什么(将是他们的本地格式),您的服务器都会收到YYYY-MM

您可以将其保存为 CHAR(7) 列,或在其末尾添加 "-01" 并保留当前的 ​​DATE 列。

【讨论】:

  • 或添加该月的最后一天而不是 01 以生成有效格式和真正的到期日期,并允许一个简单的 &gt; 查询稍后检测它
【解决方案2】:

您可以在插入表格时将任何随机日期连接到变量,例如

$expiryDate = $_POST['ccexpirydate'];
$expiryDate = $expiryDate."28"; //any date

在表单中检索和显示时,您可以像这样使用它:

<input type="month" value="<?php echo date('Y-m', strtotime($table_name['date_field'])); ?>"> //Y-m will give you date like, eg. 2017-11. Input type month will automatically read it as.. November 2017

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多