【发布时间】:2018-01-01 10:01:56
【问题描述】:
我有一个日期类型的文本框:
@Html.TextBoxFor(m => m.DateOfBirth, new { @class = "form-control", type = "date" })
模型的字段 DateOfBirth
[Required]
[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; } // Дата рождения
但日期格式是静态的 mm/dd/yy,这对于俄语 (dd/mm/yy) 是错误的。当然我可以手动设置日期格式,但是系统是多语言的,有英语以及俄语、吉尔吉斯语、乌兹别克语(它们都使用欧洲格式)。当用户更改语言时
Thread.CurrentThread.CurrentCulture =CultureInfo.CreateSpecificCulture(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
他应该看到适当的日期格式。但不知何故它没有发生:(
我已经探索过格式取决于浏览器使用的语言。但是chrome无法以吉尔吉斯语显示...
【问题讨论】:
-
HTML5“日期”输入的自定义格式似乎是不可能的(检查stackoverflow.com/a/9519493/967736)。您可以创建自己的自定义 Web 组件(如 stackoverflow.com/a/32149869/967736 中建议的那样),或者您可以使用一个好的和旧的 jQuery 日期选择器插件(或 Angular、React、Vue 等)来完成这项工作。如果您的目标是浏览器兼容性和跨不同浏览器的一致用户体验,我建议不要使用输入类型日期,因为此类输入的呈现将是 Web 浏览器的责任。
-
@IPValverde 感谢您的回答!我实际上使用了 jQuery 的日期选择器,但无法使其成为多语言。
<script> $(function () { $("#datepicker").datepicker({ changeMonth: true, changeYear: true }); }); $.datepicker.setDefaults( $.extend( { 'dateFormat': 'dd-mm-yy' }, $.datepicker.regional["fr"] ) ); </script>还是英文的
标签: asp.net-mvc date format culture