javascript - Datepicker 检查用户的年龄,有时会在数据库中保存错误的值

标签 javascript html jquery datepicker

我正在使用this tutorial ,但我根据我的需要稍微修改了一些字段,没什么特别的,只是:

$('.txtDate').datepicker({
        changeMonth: true,
        changeYear: true,
        showOn: 'focus',
        showAnim: "fadeIn",
        dateFormat: 'dd/mm/yy',
        autoSize: true,
        yearRange: '1900:+0',
        onSelect: function (dateString, txtDate) {
            ValidateDOB(dateString, txtDate.id);
        }
    });

这些是 html 输入(我有多个):

 <label class="mr-3" for="c1_dob">Birthday <span>*</span></label>
 <input class="txtDate" type="text" id="c1_dob" autocomplete="off" name="c1_dob" onkeydown="return false;" required/>

问题是,有时将日期保存到数据库中为 1970-01-01。这种情况会在哪个输入端发生也不清楚。纯随机。 有人可以指出我,为什么会发生这种情况吗?如果您需要查看更多代码,请随时询问。

最佳答案

来自您的评论:

So that means that ´date('Y-m-d', strtotime($next_array[7]))´ does not work properly.

您将 strtotime() 与诸如 dd/mm/yyyy 之类的日期格式一起使用...但它期望 mm/dd/yyyy 。因此,日和月在解析过程中是“颠倒”的。

请参阅 PHP 文档 strtotime()Supported Date and Time Formats


您的 PHP 修复将反转它们:

<?php
$dateSplit = explode("/", $next_array[7]);  // "16/03/1983";
$datefixed = $dateSplit[1]."/".$dateSplit[0]."/".$dateSplit[2];
$iso_date = date("Y-m-d", strtotime($datefixed));

echo $iso_date; // Outputs "1983-03-16"
?>

关于javascript - Datepicker 检查用户的年龄,有时会在数据库中保存错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66601235/

相关文章:

jquery - 为什么我无法在不破坏代码的情况下阻止动画队列堆叠?

javascript - 使用 HTML 输入禁用键盘并允许扫描仪

javascript - 如何在 CKEditor 5 中收听焦点事件

javascript - 由 ng-filter 和 ng-select 嵌套的 ng-repeat 过滤器

javascript - 在 EaselJS 中为 spritesheet 设置动画时出现问题

html - 使用 HTML5 Canvas 的静态/噪声动画

html - 将另一个背景图像添加到已有内嵌背景图像的元素中

javascript - 在 React 中单击按钮时显示组件

javascript - 防止文档样式表影响chrome扩展注入(inject)的元素样式

c# - 注销后如何防止浏览器后退按钮?