【问题标题】:How to force the input date format to dd/mm/yyyy? [duplicate]如何强制输入日期格式为 dd/mm/yyyy? [复制]
【发布时间】:2015-07-04 13:47:26
【问题描述】:

我有一个小问题。我正在开发一个网络系统,表单字段类型日期让我很头疼。该系统将仅适用于巴西用户,日期格式应为 dd/mm/yyyy。从使用葡萄牙语的计算机访问该站点时,HTML 表单字段类型的日期按我想要的方式工作。但是当以计算机语言访问该站点时,英语日期格式变为 yyyy-mm-dd。这是一个问题,因为有时用户甚至没有注意到您计算机的日期格式已更改,但用户希望以 dd/mm/yyyy 格式查看日期。

我需要的是格式为 dd/mm/yyyy,无论访问该站点的机器设置如何,并且不使用任何额外的 javascript 库。

使用的代码是:

<input type="date" id="date">

【问题讨论】:

标签: html date datetime


【解决方案1】:

没有这样的事情。 input type=date 将选择您的系统默认值并在 GUI 中显示,但始终以 ISO 格式 (yyyy-mm-dd) 存储该值。此外请注意,并非所有浏览器都支持此功能,因此依赖此输入类型并不是一个好主意。

如果这是企业问题,请强制所有计算机使用本地区域格式 (dd-mm-yyyy),您的 UI 会以这种格式显示(请参阅 wufoo 链接之前更改区域设置后,您需要重新打开浏览器)。

您最好的选择仍然是使用基于 JavaScript 的组件,它允许您根据需要自定义它。

【讨论】:

    【解决方案2】:

    要在不考虑计算机设置的情况下使用恒定的日期格式,您必须使用 3 个不同的输入元素来分别捕获日、月和年。但是,您需要验证用户输入以确保您的日期有效,如下所示

    <input id="txtDay" type="text" placeholder="DD" />
    
    <input id="txtMonth" type="text" placeholder="MM" />
    
    <input id="txtYear" type="text" placeholder="YYYY" />
    <button id="but" onclick="validateDate()">Validate</button>
    
    
      function validateDate() {
        var date = new Date(document.getElementById("txtYear").value, document.getElementById("txtMonth").value, document.getElementById("txtDay").value);
    
        if (date == "Invalid Date") {
            alert("jnvalid date");
    
        }
    }
    

    【讨论】:

    • 如果你打算有单独的输入,你应该至少有一个月份的下拉列表,显示月份的名称(或其缩写)。这样,控件就可以自己说话,包括在不识别placeholder 的旧浏览器中。此外,请确保您的服务器端脚本拒绝 2 位数年份。这样一来,如果有人尝试使用 YMD 格式,它就会发现错误,同时也消除了世纪歧义的任何可能性。
    【解决方案3】:

    演示:http://jsfiddle.net/shfj70qp/

    //dd/mm/yyyy 
    
    var date = new Date();
    var month = date.getMonth();
    var day = date.getDate();
    var year = date.getFullYear();
    
    console.log(month+"/"+day+"/"+year);
    

    【讨论】:

    • 我认为你需要重新阅读这个问题。
    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2019-01-09
    • 2017-10-02
    • 1970-01-01
    • 2015-03-23
    • 2016-01-02
    相关资源
    最近更新 更多