提问人:Tony_KiloPapaMikeGolf 提问时间:8/31/2023 更新时间:8/31/2023 访问量:20
Jquery DatetimePicker 所需的格式丢失。缺少“秒”部分
Jquery DatetimePicker desired format is lost. The 'seconds' part is missing
问:
上下文:帮助同事修复错误。他也没有写这段代码。当前代码是 2 个开发人员代码的合并。两者都不再可用。
最初,日期时间选取器会加载并显示正确的格式:
但是,一旦您选择了不同的时间,它就会从值中删除“秒”部分。
仅当 jquery.validate 添加到 index.cshtml 页时,才会发生此问题。 否则,将遵循原始格式。
@Scripts.Render("~/bundles/jqueryval")
其中指的是:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
这是实际控制:
<input type="text" id="snapshotDateTime" class="form-control datetimepicker">
这是 datetimepicker 初始化:
function initializeDateTimePicker(datetime) {
$('.datetimepicker').datetimepicker({
defaultDate: new Date(),
format: 'd-m-Y H:i:s',
formatTime: 'H:i',
formatDate: 'd-m-Y',
lang: 'nl',
});
// Initial datetime at startup
if (datetime == null) {
$("#snapshotDateTime").val(getFormattedDateTime(new Date()));
}
else {
$("#snapshotDateTime").val(getFormattedDateTime(datetime));
}
}
现在我的问题是:如何解决这个问题,以便可以使用jquery验证而不会丢失秒数。
(我也很感激提示,比如在哪里寻找潜在的解决方案。
免责声明:我不是javascript专家。
也许不相关,但这是 getFormattedDateTime 的实现
function getFormattedDateTime(d) {
try {
var dateTimeString = ("0" + d.getDate()).slice(-2) + "-" + ("0" + (d.getMonth() + 1)).slice(-2) + "-" +
d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2) + ":" + ("0" + d.getSeconds()).slice(-2);
return dateTimeString;
}
catch (error) {
return null;
}
}
答:
0赞
Tony_KiloPapaMikeGolf
8/31/2023
#1
感谢@Cbroe找到了解决方案:
$('.datetimepicker:not(#snapshotDateTime)').datetimepicker({
format: 'd-m-Y H:i',
lang: 'nl',
});
$('#snapshotDateTime').datetimepicker({
format: 'd-m-Y H:i:s',
lang: 'nl',
});
评论
.validate()
$('#snapshotDateTime').datetimepicker()
$('.datetimepicker:not(#snapshotDateTime)').datetimepicker()