如何根据用户的区域设置在jQuery UI的datepicker中设置日期格式?
我得到源码html:
<script type="text/javascript">
$(function() {
$(".datefield2").datepicker($.datepicker.regional['de']);
});
</script>
<form action="/Home/TestDate" method="post"> <input class="datefield2 hasDatepicker valid" name="date" value="21.12.2012" type="text" id="date">
<input type="submit" value="send">
</form>
如果在日期选择器中选择日期,我会12/21/2012
,但我需要21.12.2012
。
答案 0 :(得分:17)
使用dateFormat
option更改为自定义格式
$(function() {
$(".datefield2").datepicker($.datepicker.regional['de']);
$(".datefield2").datepicker('option','dateFormat','dd.mm.yy');
});
真正的问题是您需要手动包含本地化文件。
他们可以在https://github.com/jquery/jquery-ui/tree/master/ui/i18n发现 特定于德语的是https://github.com/jquery/jquery-ui/blob/master/ui/i18n/datepicker-de.js
看到演示(完全本地化)答案 1 :(得分:3)
您可以像这样设置日期格式:
$(".datefield2").datepicker({ "dateFormat": "dd.mm.yy"});
答案 2 :(得分:0)
网络上的JQuery文档似乎可以隐藏和寻找 日期选择器的i18n文件可以参见例如。
Where are the i18n files of jQuery UI datepicker >= 1.11.0
截至发布链接:
https://raw.githubusercontent.com/jquery/jquery-ui/master/ui/i18n/datepicker-de.js
似乎有效。如果我包括它它本身不起作用。我结束了 使用http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js,它与我使用的1.12 jquery版本不同,但它似乎有效。
请注意我使用iso日期格式2017-03-18作为yy-mm-dd而不是德语区域设置风格。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet"
href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js"></script>
<script>
$(function() {
// https://stackoverflow.com/questions/494958/how-do-i-localize-the-jquery-ui-datepicker
// https://stackoverflow.com/questions/13993619/how-to-set-locale-format-from-datepicker
$(".datepicker").datepicker($.datepicker.regional['de']);
$(".datepicker").datepicker('option','dateFormat','yy-mm-dd')
});
</script>
</head>
答案 3 :(得分:0)
由于似乎没有现成的语言环境信息,我决定使用一种不同的方法:我只使用datepicker来选择日期并从中检索日期,但是为了显示我使用普通div和Date.toLocaleDateString()。这样我就不必费心去检索格式了,或者更糟糕的是 - 自己提供这些格式。
HTML:
<div style="position:relative">
<div id="date-text">
</div>
<div style="position: absolute; left: 0; top: 0">
<input type="text" size="10" id="dt" style="opacity:0"/>
</div>
</div>
JS:
var today = new Date();
today.setHours(0,0,0,0);
$("#dt").datepicker({defaultDate: today}).on('change', function() {
$("#date-text").html($("#dt").datepicker("getDate").toLocaleDateString());
});
$("#date-text").html(today.toLocaleDateString());