2014-02-18 4 views
-1

По умолчанию я устанавливаю культуры веб-сайта следующим образом:Как обрабатывать форматы даты и времени и культуры

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo («ан-СА»);

Так что теперь ожидает ДД/ММ/ГГ

В поле ввода (он имеет выбор даты JQuery), мы позволяем пользователям вводить дату. С datepicker мы должны иметь формат:

MM/dd/YY, например. 02/18/2014

Так что сейчас происходит, если кто-то, чтобы установить дату, как: 02/12/2014

она установлена ​​в базе данных, но тогда, когда DatePicker делает дата является 02 декабря 2014 года.

Как это исправить? то есть на каком уровне и как

ответ

2

Это может быть разрешено на стороне клиента, (и будет более удобным для пользователей, IMO). Вы можете указать формат даты для jQuery Datepicker как:

$("#datepicker").datepicker("option", "dateFormat", "dd/MM/yyyy"); 

Таким образом, если пользователь выбирает дату она будет отображаться в формате dd/MM/yyyy. Его SelectedValue возвращает вам объект Javascript Date и который может быть передан на сервер. Никакой синтаксический анализ не потребуется.

+1

+1: у него ** есть ** для решения на стороне клиента: серверная сторона не имеет представления о культуре * локали * * * клиента * ... если вы не попросите пользователя эту информацию. –

+0

Могу ли я установить формат даты утверждения jqeury так или иначе? – loyalflow

0

С datepicker мы должны иметь формат: MM/dd/YY, например. 02/18/2014

даст ли DatePicker вам строку или дату? Если это дата, просто оставьте ее как дату. Если это строка преобразовать его в дату и указать формат:

DateTime dt = DateTime.Parse(dateString, "MM/dd/yyyy"); 

же при установке даты - если DatePicker ожидает строку в определенном формате, то использовать этот формат:

datePicker.Value = dt.ToString("MM/dd/yyyy"); 
Смежные вопросы