Jquery DatetimePicker 所需的格式丢失。缺少“秒”部分

Jquery DatetimePicker desired format is lost. The 'seconds' part is missing

提问人:Tony_KiloPapaMikeGolf 提问时间:8/31/2023 更新时间:8/31/2023 访问量:20

问:

上下文:帮助同事修复错误。他也没有写这段代码。当前代码是 2 个开发人员代码的合并。两者都不再可用。

最初,日期时间选取器会加载并显示正确的格式:

Good situation

但是,一旦您选择了不同的时间,它就会从值中删除“”部分。

enter image description here

仅当 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;
    }
}
javascript jquery 验证 datetimepicker datetime-format

评论

0赞 CBroe 8/31/2023
您可以添加应用的jQuery验证配置吗?
0赞 Tony_KiloPapaMikeGolf 8/31/2023
我应该寻找什么?jQuery验证配置通常是什么样子的?
0赞 CBroe 8/31/2023
应该在 JS 的某个地方进行调用,并且可能它还会传递一些选项。jqueryvalidation.org/validate.validate()
0赞 Tony_KiloPapaMikeGolf 8/31/2023
似乎正在使用模板,您为我指出了正确的方向。我将从这里看得更远。并用我的发现更新这个问题。到目前为止,谢谢。
1赞 CBroe 8/31/2023
尝试使用 初始化该特定 ,其余的使用$('#snapshotDateTime').datetimepicker()$('.datetimepicker:not(#snapshotDateTime)').datetimepicker()

答:

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',
        });