jQuery 日期选择器 beforeShow 日期格式问题
Issue with jQuery datepicker beforeShow date format
我已经集成了jQuery日期选择器,我想要在日期选择器文本框中的日期格式是例如"Fri, Aug 4",一切正常。
问题:当我打开文本框中带有日期 ("Fri Aug 4") 的日历时,该日期在日历中突出显示,但日历文本框中的日期格式更改为“08/04/ 2017.
我一直希望日期在任何上下文中都以我自己的格式显示在文本框中,但这并没有发生。我有 "onSelect" 功能,可以格式化所选日期并正确显示在文本框中。问题是日历何时打开。下面是我的 "beforeShow" 代码。有人可以帮我解决这个问题吗?
$("#exercise_date").datepicker({
beforeShow: function(input, inst) {
var objStartDate = new Date( $("#exercise_date").data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
$(this).datepicker("setDate", new Date($("#exercise_date").data("selectedDate")));
},
enableOnReadonly: true,
minDate: new Date( '2017-06-01T08:30:00Z' ),
maxDate: new Date(),
autoclose: true,
hideIfNoPrevNext: true,
onSelect: function(selectedDate){
var displayDateObj = new Date( selectedDate );
var customFormatDateStr = dayName[displayDateObj.getDay()]+", "+months[displayDateObj.getMonth()]+" "+displayDateObj.getDate();
$("#exercise_date").val(customFormatDateStr);
$("#exercise_date").data("selectedDate",selectedDate);
},
onClose: function(input, inst) {
var objStartDate = new Date( $(this).data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
}
});
试试这个代码
在您的代码中添加 dateFormat 选项
dateFormat: 'D, M dd'
- D : 日
- 月:月
- dd : 日期
$(function(){
var today = "08/11/2017";
var objStartDate = new Date( today );
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var dayName = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
$("#exercise_date").data("selectedDate",today);
$("#exercise_date").datepicker({
beforeShow: function(input, inst) {
var objStartDate = new Date( $("#exercise_date").data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
$(this).datepicker("setDate", new Date($("#exercise_date").data("selectedDate")));
},
enableOnReadonly: true,
minDate: new Date( '2017-06-01T08:30:00Z' ),
maxDate: new Date(),
autoclose: true,
dateFormat: 'D, M dd',
hideIfNoPrevNext: true,
onSelect: function(selectedDate){
var displayDateObj = new Date( selectedDate );
var customFormatDateStr = dayName[displayDateObj.getDay()]+", "+months[displayDateObj.getMonth()]+" "+displayDateObj.getDate();
$("#exercise_date").val(customFormatDateStr);
$("#exercise_date").data("selectedDate",selectedDate);
},
onClose: function(input, inst) {
var objStartDate = new Date( $(this).data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
},
});
});
$(".ui-datepicker").css("font-size", 13);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.9.1/themes/blitzer/jquery-ui.css">
Date : <input id="exercise_date" type="text" data-selectedDate="" />
我已经集成了jQuery日期选择器,我想要在日期选择器文本框中的日期格式是例如"Fri, Aug 4",一切正常。
问题:当我打开文本框中带有日期 ("Fri Aug 4") 的日历时,该日期在日历中突出显示,但日历文本框中的日期格式更改为“08/04/ 2017.
我一直希望日期在任何上下文中都以我自己的格式显示在文本框中,但这并没有发生。我有 "onSelect" 功能,可以格式化所选日期并正确显示在文本框中。问题是日历何时打开。下面是我的 "beforeShow" 代码。有人可以帮我解决这个问题吗?
$("#exercise_date").datepicker({
beforeShow: function(input, inst) {
var objStartDate = new Date( $("#exercise_date").data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
$(this).datepicker("setDate", new Date($("#exercise_date").data("selectedDate")));
},
enableOnReadonly: true,
minDate: new Date( '2017-06-01T08:30:00Z' ),
maxDate: new Date(),
autoclose: true,
hideIfNoPrevNext: true,
onSelect: function(selectedDate){
var displayDateObj = new Date( selectedDate );
var customFormatDateStr = dayName[displayDateObj.getDay()]+", "+months[displayDateObj.getMonth()]+" "+displayDateObj.getDate();
$("#exercise_date").val(customFormatDateStr);
$("#exercise_date").data("selectedDate",selectedDate);
},
onClose: function(input, inst) {
var objStartDate = new Date( $(this).data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
}
});
试试这个代码
在您的代码中添加 dateFormat 选项
dateFormat: 'D, M dd'
- D : 日
- 月:月
- dd : 日期
$(function(){
var today = "08/11/2017";
var objStartDate = new Date( today );
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var dayName = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
$("#exercise_date").data("selectedDate",today);
$("#exercise_date").datepicker({
beforeShow: function(input, inst) {
var objStartDate = new Date( $("#exercise_date").data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
$(this).datepicker("setDate", new Date($("#exercise_date").data("selectedDate")));
},
enableOnReadonly: true,
minDate: new Date( '2017-06-01T08:30:00Z' ),
maxDate: new Date(),
autoclose: true,
dateFormat: 'D, M dd',
hideIfNoPrevNext: true,
onSelect: function(selectedDate){
var displayDateObj = new Date( selectedDate );
var customFormatDateStr = dayName[displayDateObj.getDay()]+", "+months[displayDateObj.getMonth()]+" "+displayDateObj.getDate();
$("#exercise_date").val(customFormatDateStr);
$("#exercise_date").data("selectedDate",selectedDate);
},
onClose: function(input, inst) {
var objStartDate = new Date( $(this).data("selectedDate") );
var customFormatDateStr = dayName[objStartDate.getDay()]+", "+months[objStartDate.getMonth()]+" "+objStartDate.getDate();
$("#exercise_date").val( customFormatDateStr );
},
});
});
$(".ui-datepicker").css("font-size", 13);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.9.1/themes/blitzer/jquery-ui.css">
Date : <input id="exercise_date" type="text" data-selectedDate="" />