Html 是否有任何方法可以更改输入类型=";日期“;格式?
我正在使用网页上的HTML5元素。默认情况下,输入Html 是否有任何方法可以更改输入类型=";日期“;格式?,html,css,date,input,Html,Css,Date,Input,我正在使用网页上的HTML5元素。默认情况下,输入type=“date”将日期显示为YYYY-MM-DD 问题是,是否可以将其格式更改为:DD-MM-YYYY 我相信浏览器将使用本地日期格式。不要认为有可能改变。当然,您可以使用自定义日期选择器。无法更改格式。 我们必须区分有线格式和浏览器的表示格式 有线格式 是指,它指定的完整日期格式等于:yyyy-mm-dd。有关更多详细信息,请参阅RFC 3339规范的第1部分 此格式由valueHTML属性和DOM属性使用,是执行普通表单提交时使用的格式
type=“date”
将日期显示为YYYY-MM-DD
问题是,是否可以将其格式更改为:
DD-MM-YYYY
我相信浏览器将使用本地日期格式。不要认为有可能改变。当然,您可以使用自定义日期选择器。无法更改格式。
我们必须区分有线格式和浏览器的表示格式
有线格式
是指,它指定的完整日期格式等于:yyyy-mm-dd
。有关更多详细信息,请参阅RFC 3339规范的第1部分
此格式由value
HTML属性和DOM属性使用,是执行普通表单提交时使用的格式
演示文稿格式
浏览器显示日期输入的方式不受限制。在编写Chrome时,Edge、Firefox和Opera都提供了日期支持(请参阅)。它们都显示一个日期选择器,并在输入字段中格式化文本
桌面设备
对于Chrome、Firefox和Opera,输入字段文本的格式取决于浏览器的语言设置。对于Edge,它基于Windows语言设置。遗憾的是,所有web浏览器都忽略了操作系统中配置的日期格式。对我来说,这是非常奇怪的行为,在使用这种输入类型时要考虑一些事情。例如,将其操作系统或浏览器语言设置为en-us
的荷兰用户将显示01/30/2019
,而不是他们习惯的格式:30-01-2019
Internet Explorer 9、10和11以wire格式显示文本输入字段
移动设备
特别是Android上的Chrome,其格式基于Android显示语言。我怀疑其他浏览器也是如此,尽管我无法验证这一点。Google Chrome在其上一个测试版中最终使用了输入
type=date
,格式为DD-MM-YYYY
因此,必须有一种方法强制使用特定的格式。我正在开发一个HTML5网页,日期搜索现在以不同的格式失败。:
- RFC 3339/ISO 8601“wire format”:YYYY-MM-DD。根据HTML5规范,这是表单提交时或通过DOM API请求时必须用于输入值的格式。它是区域独立的
- 由用户界面控件显示并接受为用户输入的格式。鼓励浏览器供应商遵循用户的首选项选择。例如,在语言和文本首选项窗格中选择了地区“美国”的Mac OS上,Chrome 20使用格式“m/d/yy”
HTML5规范不包括覆盖或手动指定任一格式的任何方法。不可能更改web kit浏览器使用用户计算机或手机的默认日期格式。 但是如果您可以使用jquery和jQueryUI,那么就有一个日期选择器,它是可设计的,并且可以按照开发人员想要的任何格式显示。 jQueryUI日期选择器的链接是 在此页面上,您可以找到演示以及代码和文档或文档链接 编辑:-我发现chrome使用的语言设置默认等于系统设置,但用户可以更改它们,但开发者不能强迫用户这样做,因此您必须使用其他js解决方案,如我所说,您可以使用javascript日期选择器或jquery日期选择器等查询搜索web,
在大多数浏览器中都没有完全实现,所以让我们来谈谈类似webkit的浏览器(chrome)
使用linux,您可以通过更改环境变量LANG
,LC\u TIME
似乎不起作用(至少对我来说)
您可以在终端中键入locale
,以查看当前值。我认为同样的概念也适用于IOS
例如:
使用:
日期显示为mm/dd/yyyy
使用:
LANG=pt_BR /opt/google/chrome/chrome
日期显示为dd/mm/yyyy
您可以使用(根据您的区域设置更改pt\u BR
)创建您自己的自定义区域设置,并根据需要设置日期格式
关于如何更改默认系统日期的更高级参考:
和
您可以使用date
查看实际的当前日期格式:
$ date +%x
01-06-2015
但是随着LC\u TIME
和d\u fmt
似乎被chrome拒绝(我认为这是webkit或chrome中的一个bug),可悲的是它不起作用了:'(
因此,不幸的是,答案是,如果环境变量不能解决您的问题,目前还没有办法。如果您需要快速解决方案,请尝试此方法使yyyy-mm-dd变为“dd-Sep-2016” 1) 在输入附近创建一个跨度类(充当标签) 2) 每次用户更改日期或需要从数据加载时,都要更新标签 适用于webkit浏览器手机,IE11+的指针事件需要jQuery和jQuery日期
$(“日期输入”)。关于(“更改”,函数(){
$(this.css(“color”,“rgba(0,0,0,0)”)。兄弟姐妹(“.datepicker_标签”).css({“text align”):“center”,位置:“绝对”,左:“10px”,顶部:“14px”,宽度:$(this).width())。text($(this.val().length==0?”:($.datepicker.formatDate($(this.attr(“dateformat”),新日期($(this.val())));
});代码>
#日期{文本缩进:-500px;高度:25px;宽度:200px;}
如前所述,官方不可能更改格式。但是,可以设置字段的样式,因此(通过一点JS帮助)它以我们希望的格式显示日期。以这种方式操作日期输入的一些可能性丢失了,但是如果
$ date +%x
01-06-2015
<input type="date" data-date="" data-date-format="DD MMMM YYYY" value="2015-08-09">
<date-input date="{{date}}" timezone="[[timezone]]"></date-input>
<input type="date" id="dt" onchange="mydate1();" hidden/>
<input type="text" id="ndt" onclick="mydate();" hidden />
<input type="button" Value="Date" onclick="mydate();" />
#dt {
text-indent: -500px;
height: 25px;
width: 200px;
}
function mydate() {
//alert("");
document.getElementById("dt").hidden = false;
document.getElementById("ndt").hidden = true;
}
function mydate1() {
d = new Date(document.getElementById("dt").value);
dt = d.getDate();
mn = d.getMonth();
mn++;
yy = d.getFullYear();
document.getElementById("ndt").value = dt + "/" + mn + "/" + yy
document.getElementById("ndt").hidden = false;
document.getElementById("dt").hidden = true;
}
<html>
<body>
date :
<span style="position: relative;display: inline-block;border: 1px solid #a9a9a9;height: 24px;width: 500px">
<input type="date" class="xDateContainer" onchange="setCorrect(this,'xTime');" style="position: absolute; opacity: 0.0;height: 100%;width: 100%;"><input type="text" id="xTime" name="xTime" value="dd / mm / yyyy" style="border: none;height: 90%;" tabindex="-1"><span style="display: inline-block;width: 20px;z-index: 2;float: right;padding-top: 3px;" tabindex="-1">▼</span>
</span>
<script language="javascript">
var matchEnterdDate=0;
//function to set back date opacity for non supported browsers
window.onload =function(){
var input = document.createElement('input');
input.setAttribute('type','date');
input.setAttribute('value', 'some text');
if(input.value === "some text"){
allDates = document.getElementsByClassName("xDateContainer");
matchEnterdDate=1;
for (var i = 0; i < allDates.length; i++) {
allDates[i].style.opacity = "1";
}
}
}
//function to convert enterd date to any format
function setCorrect(xObj,xTraget){
var date = new Date(xObj.value);
var month = date.getMonth();
var day = date.getDate();
var year = date.getFullYear();
if(month!='NaN'){
document.getElementById(xTraget).value=day+" / "+month+" / "+year;
}else{
if(matchEnterdDate==1){document.getElementById(xTraget).value=xObj.value;}
}
}
</script>
</body>
</html>
/*================== || Date Picker ||=======================================================================================*/
/*-------Removes the // Before dd - day------------------------*/
input[type="date"]::-webkit-datetime-edit-text
{
color: transparent;
}
/*------- DatePicker ------------------------*/
input[type="date"] {
background-color: aqua;
border-radius: 4px;
border: 1px solid #8c8c8c;
font-weight: 900;
}
/*------- DatePicker - Focus ------------------------*/
input[type="date"]:focus
{
outline: none;
box-shadow: 0 0 0 3px rgba(21, 156, 228, 0.4);
}
input[type="date"]::-webkit-datetime-edit, input[type="date"]::-webkit-inner-spin-button, input[type="date"]::-webkit-clear-button {
color: #fff;
position: relative;
}
/*------- Year ------------------------*/
input[type="date"]::-webkit-datetime-edit-year-field {
position: absolute !important;
border-left: 1px solid #8c8c8c;
padding: 2px;
color: #000;
left: 56px;
}
/*------- Month ------------------------*/
input[type="date"]::-webkit-datetime-edit-month-field {
position: absolute !important;
border-left: 1px solid #8c8c8c;
padding: 2px;
color: #000;
left: 26px;
}
/*------- Day ------------------------*/
input[type="date"]::-webkit-datetime-edit-day-field {
position: absolute !important;
color: #000;
padding: 2px;
left: 4px;
}
// ================================ || Format Date Picker || ===========================================================
function GetFormatedDate(datePickerID)
{
let rawDate = document.getElementById(datePickerID).value; // Get the Raw Date
return rawDate.split('-').reverse().join("-"); // Reverse the date
}
document.getElementById('datePicker').onchange = function () { alert(GetFormatedDate('datePicker')); }; // The datepickerID