Guest User

Untitled

a guest
Mar 22nd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. function onTimezoneOffsetChange(changeHandler){
  2.  
  3. function getTimezoneOffset(){
  4. const d = new Date()
  5. return d.getTimezoneOffset()
  6. }
  7.  
  8. function getNextHourOffset(){
  9. const d = new Date()
  10. return (1000*60*60) - (((d.getMinutes()*60) + d.getSeconds()) * 1000) + d.getMilliseconds()
  11. }
  12.  
  13. let lastTZOffset = getTimezoneOffset()
  14. let timeoutRef
  15.  
  16. function scheduleCheck(){
  17. timeoutRef = setTimeout(function(){
  18. const tzOffset = getTimezoneOffset()
  19. if(lastTZOffset !== tzOffset){
  20. lastTZOffset = tzOffset
  21. changeHandler(tzOffset)
  22. }
  23. scheduleCheck()
  24. }, getNextHourOffset()+1) // run 1ms after end of hour
  25. }
  26.  
  27. scheduleCheck()
  28. }
  29.  
  30. onTimezoneOffsetChange(function(tzOffset){
  31. console.log("timezone changed")
  32. // location.reload() or refresh somehow
  33. })
Add Comment
Please, Sign In to add comment