Я пишу хранимую процедуру для Cosmos DB.Я не очень знаком с JavaScript.
Я пытался получить ISO-8601 в формате Date
, но пока безуспешно.Согласно некоторым документам , которые я обнаружил, я должен был просто иметь возможность позвонить toISOString
на Date
.Это не работает (ошибка «Объект не поддерживает свойство или метод»).
Поэтому я нашел этот совет , чтобы определить прототип самостоятельно:
function storedProcedure(arg) {
if (!Date.prototype.toISOString) {
// Here we rely on JSON serialization for dates because it matches
// the ISO standard. However, we check if JSON serializer is present
// on a page and define our own .toJSON method only if necessary
if (!Date.prototype.toJSON) {
var toISOString = function (date) {
function f(n) {
// Format integers to have at least two digits.
return n < 10 ? '0' + n : n;
}
return date.getUTCFullYear() + '-' +
f(date.getUTCMonth() + 1) + '-' +
f(date.getUTCDate()) + 'T' +
f(date.getUTCHours()) + ':' +
f(date.getUTCMinutes()) + ':' +
f(date.getUTCSeconds()) + 'Z';
};
}
Date.prototype.toISOString = Date.prototype.toJSON;
}
var now = Date.now();
var iso8601 = now.toISOString();
console.log("ISO " + iso8601);
// other code
}
Однако это все еще завершается неудачно с:
Object doesn't support property or method 'toISOString'
Я попытался удалить прототип целиком и просто использовать функцию, которая вместо этого берет Date
.Однако затем произошла та же ошибка, но для других участников, таких как getUTCFullYear
.
Я попытался также позвонить getSeconds
, и это не удалось по той же причине.В отчаянии я попытался перечислить свойства объекта с помощью функции getKeys
в этом ответе , и он дал мне пустой список.
Что здесь происходит?Как я могу просто получить ISO-8601 в формате Date
, представляющий текущее время в UTC?