Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Временной
КОллапс
Checkout online
Dmitriy Kovalenko
@dmtrKovalenko
Timezones
DateTime problems?
DateTime problems?
DateTime problems?
Often ignored
DateTime problems?
Costs 💰💰💰💰
The Reason
Of time problems
What is time?
What is time?
9 192 631 770
периодов излучения, соответствующего переходу между двумя сверхтонкими уровнями
основного состояния атома це...
Humanity
The root of evil
February Leap year
Leap second
Timezones
Daylight Saving Time
Local time
Periods
Calendar system
Timezones
Timezone Offset
Timezones
Timezones
— the local time of a region or a country + DST.
Australia
Australia
Australia DST
Samoa Islands
Back to the future
+14:00
tzdata
saves the world
tzdata
TZDATA
commit
MOMENT
Commit
UPDATE PACKAGES
One more thing…
One more thing…
2018i
Just not updated……
Just not updated……
Native timezones -> Intl
Collapse
EEST
PO
ST
{ tim
ezone: EEST
}
Backend
id Time
124 2019-03-02T10:56:07.582Z
G
ET
{ tim
ezone: UTC
}
EEST
Backend
id Time
124 2019-03-02T10:56:07.582Z
Collapse
Always work with timezones
in one place
SET TIMEZONE TO 'America/New_York';
SELECT * FROM my-supertable
WHERE timecol > NOW() - interval '1 week';
Database
Where to store user TZ?
If you doubt — in database
Parsing
x
x
"2019-02-01T16:10:34.537Z"
"2019-02-01_10:34"
124125485
User time
🤔 Which timezone?
User time
Tuesday 15th, 12:45 EEST
1. Store your dates in UTC
3. Use ISO-string with timezone included
4. Store it in database if you need
TZ Golden rules
5....
UI
Render DST
00
01
02
03
00
DST
Hours Status
Not easy
01
02
02
03
00DST
Hours Status
No ready solutions :(
Different calendar systems
No-Dependencies
No-Dependencies
KILLS TIMEZONE MANAGMENT
Dependencies?
Dependencies?
Size
Whole
0
30
60
90
120
Only formatting
0
5
10
15
20
Moment-timezone
kb/gzip kb/gzip
Luxon Moment Date-fns Day-js
Performance
Calculations
0
22500
45000
67500
90000
Formatting
0
45000
90000
135000
180000
https://github.com/dmtrKovalenko...
Everything is not so bad
Next time you will work with
date/time take a few hours
to grok it
Links
• https://www.iana.org/
• https://www.timeanddate.com/
• https://github.com/dmtrKovalenko/date-io
• https://www.npmt...
Thank you
for your attention
JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS
Upcoming SlideShare
Loading in …5
×

of

JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 1 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 2 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 3 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 4 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 5 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 6 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 7 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 8 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 9 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 10 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 11 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 12 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 13 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 14 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 15 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 16 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 17 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 18 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 19 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 20 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 21 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 22 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 23 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 24 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 25 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 26 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 27 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 28 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 29 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 30 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 31 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 32 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 33 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 34 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 35 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 36 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 37 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 38 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 39 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 40 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 41 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 42 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 43 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 44 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 45 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 46 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 47 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 48 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 49 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 50 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 51 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 52 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 53 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 54 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 55 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 56 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 57 JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS Slide 58
Upcoming SlideShare
What to Upload to SlideShare
Next

0 Likes

Share

JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS

Каждому разработчику рано или поздно приходится столкнуться с такой штукой как дата и время. И обычно это оборачивается занозой в одном месте :). Поэтому в этом докладе мы поговорим о том, почему дата и время приносят столько проблем программистам и как обойти эти проблемы стороной. Дата и время - это просто :)

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

JS Fest 2019. Дмитрий Коваленко. Временной коллапс в JS

  1. 1. Временной КОллапс
  2. 2. Checkout online
  3. 3. Dmitriy Kovalenko @dmtrKovalenko
  4. 4. Timezones
  5. 5. DateTime problems?
  6. 6. DateTime problems?
  7. 7. DateTime problems? Often ignored
  8. 8. DateTime problems? Costs 💰💰💰💰
  9. 9. The Reason Of time problems
  10. 10. What is time?
  11. 11. What is time?
  12. 12. 9 192 631 770 периодов излучения, соответствующего переходу между двумя сверхтонкими уровнями основного состояния атома цезия-133.
  13. 13. Humanity The root of evil February Leap year Leap second Timezones Daylight Saving Time Local time Periods Calendar system
  14. 14. Timezones
  15. 15. Timezone Offset
  16. 16. Timezones
  17. 17. Timezones — the local time of a region or a country + DST.
  18. 18. Australia
  19. 19. Australia
  20. 20. Australia DST
  21. 21. Samoa Islands Back to the future
  22. 22. +14:00
  23. 23. tzdata saves the world
  24. 24. tzdata
  25. 25. TZDATA commit MOMENT Commit UPDATE PACKAGES
  26. 26. One more thing…
  27. 27. One more thing…
  28. 28. 2018i
  29. 29. Just not updated……
  30. 30. Just not updated……
  31. 31. Native timezones -> Intl
  32. 32. Collapse EEST PO ST { tim ezone: EEST } Backend id Time 124 2019-03-02T10:56:07.582Z
  33. 33. G ET { tim ezone: UTC } EEST Backend id Time 124 2019-03-02T10:56:07.582Z Collapse
  34. 34. Always work with timezones in one place
  35. 35. SET TIMEZONE TO 'America/New_York'; SELECT * FROM my-supertable WHERE timecol > NOW() - interval '1 week'; Database
  36. 36. Where to store user TZ?
  37. 37. If you doubt — in database
  38. 38. Parsing x x
  39. 39. "2019-02-01T16:10:34.537Z" "2019-02-01_10:34" 124125485 User time
  40. 40. 🤔 Which timezone?
  41. 41. User time Tuesday 15th, 12:45 EEST
  42. 42. 1. Store your dates in UTC 3. Use ISO-string with timezone included 4. Store it in database if you need TZ Golden rules 5. Define timezone is expected for your users 2. Work with timezones in one place
  43. 43. UI
  44. 44. Render DST 00 01 02 03 00 DST Hours Status
  45. 45. Not easy 01 02 02 03 00DST Hours Status
  46. 46. No ready solutions :(
  47. 47. Different calendar systems
  48. 48. No-Dependencies
  49. 49. No-Dependencies KILLS TIMEZONE MANAGMENT
  50. 50. Dependencies?
  51. 51. Dependencies?
  52. 52. Size Whole 0 30 60 90 120 Only formatting 0 5 10 15 20 Moment-timezone kb/gzip kb/gzip Luxon Moment Date-fns Day-js
  53. 53. Performance Calculations 0 22500 45000 67500 90000 Formatting 0 45000 90000 135000 180000 https://github.com/dmtrKovalenko/date-io/tree/master/packages/benchmark Luxon Moment Date-fns Day-js ops/sec ops/sec
  54. 54. Everything is not so bad
  55. 55. Next time you will work with date/time take a few hours to grok it
  56. 56. Links • https://www.iana.org/ • https://www.timeanddate.com/ • https://github.com/dmtrKovalenko/date-io • https://www.npmtrends.com/moment-vs-date-fns-vs-luxon-vs-dayjs
  57. 57. Thank you for your attention

Каждому разработчику рано или поздно приходится столкнуться с такой штукой как дата и время. И обычно это оборачивается занозой в одном месте :). Поэтому в этом докладе мы поговорим о том, почему дата и время приносят столько проблем программистам и как обойти эти проблемы стороной. Дата и время - это просто :)

Views

Total views

336

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×