Poprawne wyświetlanie dat |
Poprawne wyświetlanie dat |
29.08.2014, 13:00:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.12.2012 Ostrzeżenie: (0%) |
Jak poprawinie zdefiniować date w javascript żeby były uwzględniane strefy czasowe.
W poniższym przykładnie data definiowana automatycznie działa poprawnie ale data utworzona "z palca" już nie. Czemu tak się dzieje ? http://jsfiddle.net/m72m72/7b1s5Lnd/ |
|
|
29.08.2014, 13:20:13
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
teraz.getTime() + offset
getTime zwraca ci czas w milisekundach, zas offset masz minutach.... czyli do bardzo duzej liczby w milisekundach, dodajesz 120 czyli zamiast dodac 120 minut dodajesz 120 milisekund, a to nie wplywa w zaden sposob na czas... choc nie, wplywa, bo zamiast sekund 14 pokazuje ci sekund 13 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.08.2014, 14:37:04
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.12.2012 Ostrzeżenie: (0%) |
Ale przecież "teraz" wyświetla się poprawnie (2 linia w konsoli),
z kolei 3,4 i 5 linia wyświetla złą godzinę. |
|
|
29.08.2014, 14:42:22
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
No toz ci tlumacze.... przeczytales co napisalem?
rownie dobrze, zamias + offfset mozesz dac: +0, efekt bedzie identyczny. Twoje +offset nie ma zadnego wplywu na wynik, kapisz? No, skoro wiec to ustalone, to teraz gdy podajesz recznie, ze jest 12, to sie nie dziw, ze ci wyswietla ze jest 12. A automatycznie ci dziala, bo on pobiera aktualną date. edit: jesli jeszcze nie kumasz, to moze inaczej: gdy tworzysz obiekt date, to tworzysz go w aktualnej strefie. I jesli tworzac go, mowisz, ze w aktualnej strefie jest 12, to dla niego znaczy to wlasnie tyle, ze jest 12 i nie oczekuj od niego innego wyniku. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.08.2014, 16:37:41
Post
#5
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.12.2012 Ostrzeżenie: (0%) |
Już działa.
http://jsfiddle.net/m72m72/7b1s5Lnd/ Reasumując żeby wyświetlić poprawną datę to: Przy definiowaniu daty jako terźniejszą chwilę nie trzeba "offsetować", czyli:
Z kolei przy definiowaniu daty "z palca" trzeba uwzględnić offset:
ps. nieźle to jest pierdzielnięte Niech mądrzejsi odemnie to poprawią albo skomentują i będzie dla potomnych Ten post edytował m72 29.08.2014, 16:38:30 |
|
|
29.08.2014, 16:58:53
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Widze nic nie zrozumiales z tego co napisalem...
Jak podajesz, że w danej strefie jest 12:00:00, to nic nie musisz offsetowac przy wyswietlaniu... Skoro jest 12:00:00 to jest 12:00:00 i koniec. Niby z jakiego powodu przy wyswietlaniu ma ci sie wyswietlac 14:00:00... nie rozumiesz chyba o co tu chodzi. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.08.2014, 17:22:26
Post
#7
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.12.2012 Ostrzeżenie: (0%) |
No ale przecież teraz wszystko działa jak należy, w czym problem ?
ps. poprawny link http://jsfiddle.net/m72m72/c854pxnj/ Ten post edytował m72 29.08.2014, 17:26:44 |
|
|
29.08.2014, 17:35:49
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Dziala ci jak nalezy, bo nie offsetujesz daty. A jeszcze post wczesniej pisales, ze dla recznej daty trzeba ją offsetowac....
A ja ci od początku pisalem, ze wlasnie masz nie offsetowac. I dopiero jak nie offsetujesz to jest ok. Wiec przestan wkoncu mieszac, ze niby dla recznej trzeba offsetowac a co do czego i tak nie offsetujesz... -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.08.2014, 17:52:07
Post
#9
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.12.2012 Ostrzeżenie: (0%) |
Po kilku przeróbkach się zapultałemi faktycznie był błąd.
Czyli ani data "teraz" ani z palca nie musi być offsetowana ? Tak wnioskuje bo to działa.
http://jsfiddle.net/m72m72/c854pxnj/1/ |
|
|
29.08.2014, 18:02:44
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Cytat Czyli ani data "teraz" ani z palca nie musi być offsetowana ? No przeciez juz ci to tlumaczylem: nie, nie musi.I w poprzednim poscie ci dzialalo, bo tez nie offsetowales, gdyz to: var offset_data = data.getTimezoneOffset()* 60000; nie jest offetowanie daty tylko wyciągnieciem offetu i przemnozeniem go i nic wiecej... -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 06:52 |