Используйте функцию ToJavaScriptDate()
, которая делает это для вас:
function ToJavaScriptDate(value) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
}
Функция ToJavaScriptDate()
принимает значение в формате \/Date(ticks)\/
и возвращает строку даты в формате MM/dd/yyyy
. Внутри функция ToJavaScriptDate()
использует регулярное выражение, представляющее шаблон /Date\(([^)]+)\)/
. Метод exec()
принимает значение исходной даты и тесты для соответствия в значении. Возвращаемое значение exec()
- это массив. В этом случае второй элемент массива результатов (results[1]
) содержит часть тиков исходной даты.
Например, если исходное значение равно \/Date(836418600000)\/
, тогда results[1]
будет 836418600000
]. На основе этого значения тиков формируется объект JavaScript Date. Объект Date имеет конструктор, который принимает число миллисекунд с 1 января 1970 года. Таким образом, dt
содержит действительный объект JavaScript Date. Затем функция ToJavaScriptDate()
форматирует дату как MM/dd/yyyy
и возвращается к вызывающему абоненту.
Вы можете использовать функцию ToJavaScriptDate()
, как показано ниже:
options.success = function (order) {
alert("Required Date : " + ToJavaScriptDate(order.RequiredDate) + ", Shipped Date : " + ToJavaScriptDate(order.ShippedDate));
};
выше пример использует дату в формате MM/dd/yyyy
, вы можете использовать любой другой формат после создания объекта Date.
: Ссылка
Если вы открыты для использования другой библиотеки JavaScript:
function ToJavaScriptDateTime(value) { var pattern = /Date\(([^)]+)\)/; var results = pattern.exec(value); var dt = new Date(parseFloat(results[1])); return dt.getHours() + ":" + dt.getMinutes() + " " + ('0' + dt.getDate()).slice(-2) + "." + ('0' + (dt.getMonth() + 1)).slice(-2) + "." + dt.getFullYear(); }
– SFin 26 September 2018 в 14:14