道歉。我搜索了但找不到答案。
我在带有以下代码的网页上使用日期选择器。
$(function() {
$("#datepicker").datepicker({
dateFormat:"DD, MM d, yy",
minDate: 0,
});
});
我也有以下表格。
<select id="language">
<option value="english">English</option>
<option value="french">French</option>
</select>
<button onclick="showDate()">Submit</button>
我想根据所选选项更改日期选择器格式和dayNames
值。我相信我需要一个if
运算符,但似乎无法使其正常运行。
因此,如果选择了“法语”选项,则dateFormat将为“ DD d MM yy”,而dayNames将被设置为"dayNames: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]"
。
生成的日期将出现在一个段落中。因此,由于默认的日期格式,如果选择法语,则日期将显示为"mercredi 25 décembre 2019"
,如果选择英语,则日期将显示为"Wednesday, December 25, 2019"
。
我对JavaScript和jQuery还是相当陌生,对此深表感谢。我最初考虑在选择“法语”时更改日历的本地化,但这可能会使事情复杂化。
答案 0 :(得分:0)
感谢您的澄清!这是一个可以帮助您找到所需答案的答案。所有主要的浏览器都可以使用.toLocaleDateString(language, options)
使用javascript翻译日期,因此我为您编写了一个可运行的代码段。
注意:我将您的选择更改为具有toLocaleDateString函数所需的语言环境字符串的值,并且您可以使用dateOptions
对象进行格式化。 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString)
因此,日期选择器的getDate
方法返回了一个JavaScript Date
对象,这是toLocaleDateString
所需要的。然后,使用jquery设置currentLanguage
变量,以获取所选下拉项的值。
希望这会有所帮助!
$(function() {
$("#datepicker").datepicker({
dateFormat:"DD, MM d, yy",
minDate: 0,
});
});
function showDate() {
var dateOptions = { weekday: "long", year: "numeric", month: "long", day: "numeric" };
var selectedDate = $("#datepicker").datepicker("getDate");
var currentLanguage = $("#language option:selected").val();
alert(selectedDate.toLocaleDateString(currentLanguage, dateOptions));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<input id="datepicker">
<select id="language">
<option value="en-US">English</option>
<option value="fr-FR">French</option>
</select>
<button onclick="showDate()">Submit</button>