根据表单输入更改Datepicker格式和输出

时间:2019-12-23 23:04:51

标签: javascript jquery datepicker

如果已经回答了该问题,请提前

道歉。我搜索了但找不到答案。

我在带有以下代码的网页上使用日期选择器。

$(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还是相当陌生,对此深表感谢。我最初考虑在选择“法语”时更改日历的本地化,但这可能会使事情复杂化。

1 个答案:

答案 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>