Проблема локализации с форматами даты при использовании Classic ASP на webmatrix 2
Я становлюсь немного взволнованным здесь. Я работаю над новым сайтом в Classic Asp.
Встроено все, и все работает нормально, и теперь пришло время проверить некоторые данные. В тот момент, когда мы приходим к дате связанных данных, все сходит с ума.
я запустил запрос на своем SQL CE, который поставляется с WebMatrix 2, и вставил дату в поле с помощью Getdate(), и проверил ее, формат - мм / дд / гггг.
Теперь на веб-странице, если я делаю response.write Date(), его в формате дд / мм / гггг.
FormatDateTime (nDate, vbshortdate) возвращает дату в формате гггг / мм / дд.
Хорошо, это было все о предыстории и фактах.
Так что теперь у меня есть дата в поле под названием newDate. я заполнил его в свое текстовое поле, используя переменную. Теперь, если я пытаюсь обновить БД, это ошибка. Я отвечаю. Пишу запрос sql, и дата теперь является строкой в стиле справа налево (арабский).
Я верю, что это может быть проблемой локализации, если кто-то может помочь мне выйти из этого затруднительного положения.
Я также должен добавить, что на своих веб-страницах я использовал charset=utf-8.
большое спасибо
2 ответа
Я использовал следующий код в форме, где данные хранятся в таблице с именем Employees:
@{
var record = UrlData[0].AsInt();
var id=Request["id"];
var db = Database.Open("StarterSite");
var SQLSELECT = "SELECT * FROM Employees where Id=@0";
// Select the requested record //
var emp = db.QuerySingle(SQLSELECT,id);
var EmployeeDOB = emp.DateOfBirth;
EmployeeDOB=Request["formDOB" ];
// Update the database with data from the form //
var SQLUPDATE = "UPDATE Employees Set EmployeeDOB=@1 where Id=@0";
db.Execute(SQLUPDATE, EmployeeId,
EmployeeDOB);
}
<form method="post">
<label for="formDOB" @if (!ModelState.IsValidField("formDOB")) {<text>class="error- label"</text>} >DOB:</label>
<input type="date" name="formDOB" value="@EmployeeDOB.ToString("MM/dd/yyyy")" style="display:inline-block;margin-top:5px;margin-bottom:5px;max-width:80px;" onblur=' '/>@Html.ValidationMessage("formDOB")<br />
EmployeeDOB объявлен в таблице как время данных.
Поле ввода отображается в виде даты в формате MM/dd/yy без времени, но сохраняется в таблице как время даты, то есть 22.11.2012 8:00:00 PM.
SQL CE не "форматирует" дату, когда хранит ее как таковую. WebMatrix форматирует его для отображения в инструментах базы данных. Если вы хотите управлять форматом отображения даты в браузере с помощью VBScript, у вас есть несколько вариантов. См. Форматирование даты в VBScript. Также см. Могу ли я сделать даты формата VBScript для меня.