Miałem ten sam problem. new Date()
na telewizorze Samsung Smart TV nie pobiera czasu zgodnie z bieżącym ustawieniem, ale zamiast tego pobiera podstawowy czas systemowy. Zawsze zwraca również znacznik czasu UTC. Na szczęście istnieje funkcja API, GetEpochTime()
, która pozwala (sortować) ją naprawić.
Oto kod używam na platformach 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()
teraz działa dobrze na wyświetlanie aktualnego czasu w moim 2013 Samsung Smart TV. Mimo to możesz mieć problemy z porównywaniem znaczników czasu z bieżącą godziną.
Nie sądzę, że byłoby zbyt szerokie. Drogi Andrei, może gdybyś wstawił kilka próbek kodu ... i zagłosuj, by ponownie otworzyć swój własny quesiton. – peterh