有什么办法可以更改输入类型=“日期”格式?

为君一笑 提交于 2020-01-07 01:20:16

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我正在使用网页上的HTML5元素。 默认情况下,输入type="date"显示为YYYY-MM-DD

问题是,是否可以将其格式更改为: DD-MM-YYYY


#1楼

最后一个Beta版本的Google Chrome浏览器最终使用输入type=date ,格式为DD-MM-YYYY

因此,必须有一种强制使用特定格式的方法。 我正在开发HTML5网页,日期搜索现在失败,但格式不同。


#2楼

区分两种不同的格式很重要

  • RFC 3339 / ISO 8601“有线格式”:YYYY-MM-DD。 根据HTML5规范,这是在表单提交时或通过DOM API请求时必须用于输入值的格式。 它是区域设置和区域独立的。
  • 用户界面控件显示的格式,并被接受为用户输入。 鼓励浏览器供应商遵循用户的首选项选择。 例如,在Mac OS上,在“语言和文字”偏好设置窗格中选择了“美国”区域,Chrome 20使用的格式为“ m / d / yy”。

HTML5规范不包括任何替代或手动指定格式的方法。


#3楼

无法使用用户的计算机或手机的默认日期格式更改网络套件浏览器。 但是,如果可以使用jquery和jquery UI,则可以选择日期选择器,并且可以按照开发人员的需要以任何格式显示日期选择器。 指向jquery UI date-picker的链接在此页面上http://jqueryui.com/datepicker/您可以找到演示以及代码和文档或文档链接

编辑:-我发现chrome使用的语言设置默认情况下等于系统设置,但用户可以更改它们,但开发人员无法强迫用户这样做,因此您必须使用其他js解决方案,例如我告诉您可以搜索网络使用javascript date-pickers或jquery date-picker之类的查询


#4楼

经过许多障碍之后,我想出了一个可以更改格式的解决方案。 有一些警告,但是如果您希望始终显示“ Jan”或“ 01”,则可以使用。 仅由于Firefox根本不支持本机日期选择器,才可以在Windows和Mac上的Chrome中运行。

https://github.com/northamerican/custom-input-date-format

JS:

function updateDateInputs() { 
    $('input').each(function() {
        var $date = $(this),
            date = $date.val().split('-'),
            format = ['year', 'month', 'day'];
        $.each(format, function(i, v) {
            $date.attr('data-' + v, +date[i]);
        });
    });
}

SASS:

$months: '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12';
@each $month in $months {
    $i: index($months, $month);

    input[data-month="#{$i}"][data-style="reg"]::-webkit-datetime-edit-month-field:after { 
        content: "#{$month}";
    }
}

#5楼

如前所述, <input type=date ... >在大多数浏览器中并未完全实现,因此让我们来谈谈像浏览器(chrome)这样的webkit。

使用linux,您可以通过更改环境变量LANG来更改它, LC_TIME似乎不起作用(至少对我而言)。

您可以在终端中键入locale以查看当前值。 我认为相同的概念可以应用于IOS。

例如:使用:

LANG=en_US.UTF-8 /opt/google/chrome/chrome

日期显示为mm/dd/yyyy

使用方法:

LANG=pt_BR /opt/google/chrome/chrome

日期显示为dd/mm/yyyy

您可以使用http://lh.2xlibre.net/locale/pt_BR/ (根据您的语言环境更改pt_BR )来创建自己的自定义语言环境,并根据需要设置日期格式。

关于更改默认系统日期怎么是一个很好的更高级的参考: https://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/https://开头askubuntu。 com / questions / 21316 /我如何自定义系统语言环境

您可以使用date查看实际的当前日期格式:

$ date +%x
01-06-2015

但是由于d_fmt似乎拒绝了LC_TIMEd_fmt (我认为这是webkit或chrome中的错误),遗憾的是它不起作用 。 :'(

因此,不幸的是,如果LANG环境变量不能解决您的问题,那么还没有办法。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!