У меня есть страница с TextBox
и CalendarExtender
, которая должна позволить мне определить, какая дата выбрана. Тем не менее, это сообщение о дате, которая не выбрана.CalendarExtender, указав неправильную дату, возможно, связанную с часовым поясом
<asp:TextBox ID="tbEffectiveDate" runat="server"
CssClass="input-small"
MaxLength="10"
Text='<%# Bind("NewEffectiveDate", "{0:MM/dd/yyyy}") %>'>
</asp:TextBox>
<ajaxToolkit:CalendarExtender ID="atkEffectiveDate" runat="server"
FirstDayOfWeek="Sunday"
TargetControlID="tbEffectiveDate"
Format="MM/dd/yyyy"
OnClientDateSelectionChanged="CheckForSunday">
</ajaxToolkit:CalendarExtender>
По существу я убедившись, что пользователь выбрал в воскресенье, но когда я выбираю день на календаре JavaScript говорит, что это за день до того. Я недоумеваю.
function CheckForSunday(sender, args) {
var selectedDate = new Date();
selectedDate = sender.get_selectedDate();
// Both of these show the date before the date was selected
alert(sender.get_selectedDate());
if (selectedDate.getDay() != 0) {
// not a Sunday
var sunday = selectedDate;
// calculated the nearest Sunday
sunday.setDate(selectedDate.getDate() - selectedDate.getDay());
sender.set_selectedDate(sunday);
// tell the user that the date wasn't a Sunday
// and that the previous Sunday was selected.
$("#must-be-sunday").modal("show");
}
}
Например, если выбрать в воскресенье, например, 5 мая:
Затем на линии alert(sender.get_selectedDate());
, он отображает
Это говорит Суббота, 4 мая выбирается вместо 5 мая. Поскольку в моей локали мы -0700, и это показывает 7 часов до полуночи на 5-м, я предполагаю, что это имеет какое-то отношение к часовому поясу.
Кто-нибудь знает, что может быть причиной этого и как его исправить, чтобы он не работал со временем и выбрана только выбранная дата?