Акысыз Даталар айырмасы эсептегич

Эки дата ортосундагы так айырманы эсептеңиз — жыл, ай, күн, жума, иш күндөрү (дем алыш күндөрдү эсепке албай), саат жана мүнөт.

Жүктөлгөндөн кийин оффлайн иштейт

Тез орнотуулар

Айырмасын көрүү үчүн эки күндү тандаңыз.

Бул кантип иштейт

Бардык эсептөө кол менен жазылган UTC арифметикасын колдонуп толугу менен браузериңизде болот — тышкы китепкана жок, серверге сурам жок. Курал ЖЖЖЖ-АА-КК саптарын календарлык компоненттерге талдайт, DST жылышын алдын алуу үчүн Date.UTC() миллисекунд убакыт белгилерин колдонуп айырмаларды эсептейт жана дүйшөмбү-жумадан эсептеп жумуш күндөрүн санайт.

  1. 1
    Коопсуз күн талдоо
    Ар бир күн сабы регекс менен текшерилип, андан кийин new Date(string) эмес, Date.UTC() аркылуу кайра курулат — ошондуктан UTC'ден батышта жашаган колдонуучулар браузердин жергиликтүү убакыт алкагы гана-күндүк киргизүүлөрдү чечмелешинен улам жума күн жылышын эч качан көрбөйт.
  2. 2
    UTC миллисекунд алуу
    Эки календардык дата Date.UTC(y, m, d) менен UTC түн ортосу убакыт белгилерине айландырылат. 86,400,000 мс'ге бүтүн бөлүү жайдын убактысына өтүүлөрдөн иммундук так бүтүн-күндүк саны берет, алар болбосо күндү 23 же 25 сааттык кылып көрсөтө алмак.
  3. 3
    Календардык бузулуш жана жумуш-күн саны
    Кол менен жазылган жыл/ай/күн ажыратуу ай-узундук туура эместиктерин иштетет (керек болгондо мурунку айдан күн алуу). Өзүнчө цикл эки датанын ортосундагы ар бир UTC күндү басып өтөт жана дүйшөмбү-жумага гана эсептегичти көбөйтөт (getUTCDay() !== 0 же 6), локалиге карабастан так жумуш-күн жалпысын берет.
  4. 4
    Натыйжалар бардык бирдиктерде көрсөтүлөт
    Жалпылар барак локалиси менен локали-эске алуучу цифра топтоо үчүн toLocaleString() менен форматталат, андан кийин жыл/ай/күн, жалпы күн, жумуш күн, жума, саат жана мүнөт катары бир учурда көрсөтүлөт. Учурдагы дата жубу history.replaceState аркылуу URL'ге жазылат, ошондуктан каалаган натыйжаны кыстармага коюсо же түз шилтеме катары бөлүшсө болот.

Байланыштуу куралдар

Көп берилүүчү суроолор