【发布时间】:2021-12-14 05:40:41
【问题描述】:
我正在尝试获取功能 - 如果用户输入的日期小于当前日期,我需要在屏幕上显示错误消息,我实现了以下代码,该代码在我的本地系统日期中运行良好,但在其他时区。任何人都可以帮助得到这个。
我只需要使用 javascript 或 jquery。我不应该使用其他库。
dateFormat = function(value, event) {
let newValue = value.replace(/[^0-9]/g, '').replace(/(\..*)\./g, '$1');
const dayOrMonth = (index) => index % 2 === 1 && index < 4;
// on delete key.
if (!event.data) {
return value;
}
return newValue.split('').map((v, i) => dayOrMonth(i) ? v + '/' : v).join('');
}
checkStart = function(value) {
var newDate = new Date().toISOString();
var inputDate = new Date(value).toISOString();
var today = new Date(newDate).setHours(0,0,0,0);
var userDate = new Date(inputDate).setHours(0,0,0,0);
if(userDate < today) {
$('#error-msg3').show();
$('#startDate').val('');
} else {
$('#error-msg3').hide();
}
}
<input type="tel" maxlength="10" id="startDate" name="startDate" placeholder="mm/dd/yyyy"
oninput="this.value = dateFormat(this.value, event)" onblur="checkStart(this.value)" required/>
<span id="error">Start date should not be lesser than the current date.</span>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
【问题讨论】:
-
您是否在数据库中存储日期?您如何存储它,以及如何将其发送到服务器
-
我已经更新了上面的代码,我正在将用户输入的日期格式转换为 mm/dd/yyyy 并通过表单操作 url 将其发送到服务器
-
如果您的代码使用 jQuery,请将其作为库包含在 sn-p 中,否则只会抛出错误。为什么要使用输入类型 tel 作为日期?即使包含 jQuery,脚本似乎也没有做任何有用的事情。
标签: javascript jquery date timezone