Ho avuto lo stesso problema. new Date()
su Samsung Smart TV non ottiene il tempo in base all'impostazione corrente, ma ottiene il tempo di sistema sottostante. Restituisce sempre anche un timestamp UTC.
Fortunatamente, esiste una funzione API, GetEpochTime()
, che consente di (risolverlo) risolverlo.
Ecco il codice che sto usando su piattaforme Samsung:
(function (OldDate) {
// Get a reference to Samsung's TIME API
var time = document.createElement('object');
time.setAttribute('classid', 'clsid:SAMSUNG-INFOLINK-TIME');
document.body.appendChild(time);
// Replace the existing Date() constructor
window.Date = function (a, b, c, d, e, f, g) {
switch (arguments.length) {
case 0:
return new OldDate(time.GetEpochTime() * 1000);
case 1: return new OldDate(a);
case 2: return new OldDate(a, b);
case 3: return new OldDate(a, b, c);
case 4: return new OldDate(a, b, c, d);
case 5: return new OldDate(a, b, c, d, e);
case 6: return new OldDate(a, b, c, d, e, f);
case 7: return new OldDate(a, b, c, d, e, f, g);
}
};
// Copy static function properties
Date.now = function() { return time.GetEpochTime() * 1000; };
Date.UTC = OldDate.UTC;
Date.parse = OldDate.parse;
})(Date);
new Date()
ora funziona bene per la visualizzazione del tempo corrente sul mio 2013 Samsung Smart TV. Tuttavia, potresti comunque avere problemi nel confrontare i timestamp con l'ora corrente.
Non penso che sarebbe troppo ampio. Caro Andrei, forse se inserissi alcuni esempi di codice ... e vota per riaprire anche il tuo quesiton. – peterh