Изменение формата даты на сервере - PullRequest
0 голосов
/ 27 апреля 2020

Я использую момент. js для форматирования даты

orderStartDate = start.format('MM/DD/YYYY hh:MM:ss');
orderEndDate = end.format('MM/DD/YYYY hh:MM:ss');

$('#dateStart').val(orderStartDate);
$('#dateEnd').val(orderEndDate);

<input type="datetime-local" class="hide" name="dateStart" id="dateStart" value="@ViewBag.DateStart" />
<input type="datetime-local" class="hide" name="dateEnd" id="dateEnd" value="@ViewBag.DateEnd" />

В моем локальном файле это показывает, например, правильный формат: 4/27/2020 12:00:00 AM, но когда я опубликовал его на сервере, он изменился на этот формат : 27/04/2020 12:00:00 AM и этот результат обнуляется при вызове контроллера:

public ActionResult Index(DateTime? dateStart = null, DateTime? dateEnd = null)

Как я могу сохранить тот же формат для моего локального mm/dd/yyy или 4/27/2020 12:00:00 AM?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Поскольку браузер отправляет некоторый формат, а сервер использует другой формат.

Также может существовать различие между видимым форматом пользовательского интерфейса Moment и форматом данных, отправляемых браузером. То, что отправка через браузер, должно быть в том же формате, что и сервер.

На стороне клиента в бритве выполните экспорт

orderStartDate = start.format('@Thread.CurrentThread.CurrentUICulture.DateTimeFormat.FullDateTimePattern');

Это может быть полезно как подсказка.

CultureInfo cultureInfo = new CultureInfo("en-EN");
cultureInfo.DateTimeFormat.FullDateTimePattern = "MM/DD/YYYY hh:MM:ss";

System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;
0 голосов
/ 27 апреля 2020

Я предлагаю с пользовательским форматом даты, вы можете изменить параметр как

public ActionResult Index(string dateStart = "", string dateEnd = "")

и использовать Date.TryParseExact метод внутреннего действия для вашего формата даты.

...