如何强制输入日期格式为dd / mm / yyyy?

时间:2015-04-26 02:56:26

标签: html5 date datetime

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

我需要的是格式为dd / mm / yyyy,无论访问网站的机器设置如何,也不使用任何其他javascript库。

使用的代码是:

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

3 个答案:

答案 0 :(得分:5)

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

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

您最好的选择仍然是使用基于JavaScript的组件,这样您就可以根据自己的需要进行自定义。

答案 1 :(得分: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");

    }
}

答案 2 :(得分:-5)

DEMO: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);