Използвайте new Date(), за да създадете нов обект Date, съдържащ текущите дата и час.

забележи, чеДата() извикан без аргументи е еквивалентен нанова дата (Date.now()) .

След като имате обект за дата, можете да приложите всеки от няколкото налични методиза извличане на неговите свойства (напр. getFullYear() за получаване на 4-цифрена година).

Следват някои често срещани методи за дата.

Вземете текущата година

var year = (нова дата()).getFullYear(); конзолен дневник (година); // Примерен резултат: 2016 г

Вземете текущия месец

var month = (нова дата()).getMonth(); конзолен дневник (месец); // примерен изход: 0

Имайте предвид, че 0 = януари. Това е така, защото месеците варират от 0 преди 11 , така че често е желателно да добавите +1 към индекса.

Вземете текущия ден

varday = (нова дата()).getDate(); конзолен дневник (ден); // примерен резултат: 31

Вземете текущия час

var hours = (нова дата()).getHours(); конзолен дневник (часове); // примерен изход: 10

Вземете текущи минути

var минути = (нова дата()).getMinutes(); дневник на конзолата (минути); // примерен резултат: 39

Вземете текущи секунди

var seconds = (нова дата()).getSeconds(); конзолен дневник (втори); // примерен изход: 48

Вземете текущите милисекунди

За да получите милисекунди (0 до 999) на екземпляр на обект Date, използвайте метода getMilliseconds.

var milliseconds = (нова дата()).getMilliseconds(); конзолен дневник (милисекунди); // Изход: милисекунди в момента

Преобразувайте текущия час и дата в четим от човека низ

varnow = нова дата(); // конвертиране на дата в низ във формат на часовата зона UTC: console.log(now.toUTCString()); // Изход: сряда, 21 юни 2017 г. 09:13:01 GMT

Статичен метод Date.now() връща броя милисекунди от 1 януари 1970 г. 00:00:00 UTC. За да получите броя милисекунди, изминали оттогава, като използвате екземпляр на обекта Date, използвайте неговия метод getTime.

// получаваме милисекунди, използвайки статичен метод сега на Date console.log(Date.now()); // получаваме милисекунди с помощта на метода getTime на екземпляр на Date console.log((new Date()).getTime());

Датата и часът са част от нашето ежедневие и затова заемат видно място в програмирането. В JavaScript, когато създавате уебсайт, може да искате да добавите календар, разписание на влаковете или интерфейс за насрочване на срещи. Тези приложения трябва да показват подходящите часове въз основа на текущата часова зона на потребителя или да извършват изчисления, свързани с пристигането и заминаването на самолет, или началните и крайните часове на събитие. Освен това може да се наложи да използвате JavaScript, за да изпращате ежедневни отчети в определени часове или за филтриране (например, за да намерите ресторанти, които работят в определени часове).

обект за дата

Датата е вграден обект в JavaScript, който съхранява датата и часа. Той предоставя редица вградени методи за форматиране и манипулиране на тези данни.

По подразбиране нов екземпляр на Date без аргументи създава обект с текущата дата и час според системни настройкитекущ компютър.

Като пример, опитайте да присвоите текущата дата на променлива. Създайте файл now.js.

// Задаване на променлива на текуща дата и час
const сега = нова дата ();
// преглед на изхода
сега;
Сряда, 18 октомври 2017 г. 12:41:34 GMT+0000 (UTC)

Резултатът е низ от дата, съдържащ следните данни:

Датата и часът са разбити и показани по лесен за четене начин.

Въпреки това, JavaScript интерпретира дата въз основа на клеймо за време на Unix, което е стойност, състояща се от броя милисекунди от полунощ, 1 януари 1970 г. Можете да получите времевия печат с помощта на метода getTime().

// Получаване на текущото времево клеймо
сега.getTime();
1508330494000

Голямото число, което се появява в изхода като текущо времево клеймо, е броят милисекунди, изминали от полунощ, 1 януари 1970 г., до 18 октомври 2017 г.

Нулевото време (или времевата епоха) е представено от низа за дата 01 януари 1970 г. 00:00:00 универсално време (UTC) и клеймо за време 0. Можете да тествате това в браузъра, като създадете нова променлива в epoch.js и като му присвоите нов екземпляр на Date въз основа на времева клеймо 0.

// Присвояване на клеймо за време 0 на нова променлива
const epochTime = нова дата (0);
епохаВреме;
01 януари 1970 г. 00:00:00 универсално време (UTC)

Нулевото време е избрано като стандарт за измерване на времето от компютрите и този метод се използва в JavaScript. Важно е да се разберат клеймата за време и датите, тъй като тези концепции могат да се използват в зависимост от настройките и целта на приложението.

Вече знаете как да създадете нов екземпляр на Date въз основа на текущото време и клеймо за време. В JavaScript има общо четири формата за дата. В допълнение към текущия час и клеймо по подразбиране можете също да използвате низ от дата или да посочите конкретна дата и час.

Демонстрирам различни начинипрепратки към конкретна дата, опитайте да създадете нови обекти Date, които представляват 4 юли 1776 г., 12:30 GMT по три различни начина.

// метод на времево клеймо
нова дата (-6106015800000);
// метод на низ за дата
нова дата ("31 януари 1980 г. 12:30");
// метод за дата и час
нова дата (1776, 6, 4, 12, 30, 0, 0);

Всички тези примери представят една и съща информация за дата и час по три различни начина.

Както можете да видите, методът на времевото клеймо има отрицателно число; всяка дата преди нулата ще бъде представена като отрицателно число.

В третия пример секундите и милисекундите са представени с 0. Ако ви липсват някакви данни, когато създавате обекта Date, трябва да го присвоите на 0. Липсващите данни не могат да бъдат пропуснати, тъй като редът на данните за времето в низа не промяна. Трябва също да се отбележи, че месец юли тук е обозначен като 6, а не 7. Това е така, защото обратното броене започва от 0, а не от 1. Повече за това в следващия раздел.

Извличане на дата с get

След като имате дата, можете да получите достъп до всички нейни компоненти, като използвате различни вградени методи. Методите връщат всяка част от датата спрямо местната часова зона. Всеки от тези методи започва с get и връща относително число. По-долу е дадена подробна таблица на методите за получаване за обекта Date.

Време за среща Метод Обхват Пример
година getFullYear() ГГГГ 1970
месец getMonth() 0-11 0 = януари
Ден от месеца getDate() 1-31 1 = 1-во число на месеца
Ден от седмицата getDay() 0-6 0 = неделя
час getHours() 0-23 0 = полунощ
минута getMinutes() 0-59
Второ getSeconds() 0-59
Милисекунда getMilliseconds() 0-999
клеймо за време getTime()

// Инициализиране на нов рожден ден
const рожден ден = нова дата (1980, 6, 31);

Сега можете да използвате всички методи за извличане на всеки компонент от датата.

рожден ден.getFullYear(); // 1980 г
рожден ден.getMonth(); // 6
рожден ден.getDate(); // 31
рожден ден.getDay(); // четири
рожден ден.getHours(); // 0
рожден ден.getMinutes(); // 0
рожден ден.getSeconds(); // 0
birthday.getMilliseconds(); // 0
birthday.getTime(); // 333849600000 (за GMT)

Понякога може да се наложи да извлечете само част от дата и вградените методи за получаване ще ви помогнат с това.

Например, можете да сравните днешната дата с 3 октомври, за да видите дали е 3 октомври или не.

// Вземете днешната дата
const днес = нова дата ();
// Сравнете днес с 3 октомври
if (today.getDate() === 3 && today.getMonth() === 9) (
console.log("3 октомври е.");
) иначе (
console.log("Не е 3 октомври.");
}
Не е 3 октомври.

Вградените методи за получаване ви позволяват достъп до компоненти за дата.

Промяна на датата с настройка

За всички методи за получаване, изброени по-горе, има съответен set метод. Ако get се използва за извличане на конкретен компонент за дата, set се използва за промяна на тези компоненти. По-долу е дадена подробна таблица на методите за настройка за обекта Date.

Време за среща Метод Обхват Пример
година setFullYear() ГГГГ 1970
месец setMonth() 0-11 0 = януари
Ден от месеца setDate() 1-31 1 = 1-во число на месеца
Ден от седмицата setDay() 0-6 0 = неделя
час setHours() 0-23 0 = полунощ
минута setMinutes() 0-59
Второ setSeconds() 0-59
Милисекунда setMilliseconds() 0-999
клеймо за време setTime() Брой милисекунди от момента на нулата

Тези методи за задаване могат да се използват за промяна на един или повече компоненти на дата. Например, можете да промените годината в променливата за рожден ден на 1997.

// Промяна на годината на рождената дата
рожден ден.setFullYear(1997);
рожден ден;
четвъртък, 31 юли 1997 г. 00:00:00 GMT+0000 (UTC)

Сега, когато извиквате променливата за рождения ден, виждате не 1980, а 1997.

Вградените методи за набор ви позволяват да променяте различни части на обекта Date.

UTC методи

Методите за получаване, описани по-горе, извличат компонентите за дата въз основа на Локални настройкичасовата зона на потребителя. За да увеличите контрола върху датите и часовете, можете да използвате методите getUTC, които работят по същия начин като методите get, но изчисляват времето въз основа на стандарта UTC (Координирано универсално време). Следва таблицата с UTC методи за обект Date в JavaScript.

Време за среща Метод Обхват Пример
година getUTCFullYear() ГГГГ 1970
месец getUTCMonth() 0-11 0 = януари
Ден от месеца getUTCDate() 1-31 1 = 1-во число на месеца
Ден от седмицата getUTCDay() 0-6 0 = неделя
час getUTCHours() 0-23 0 = полунощ
минута getUTCMinutes() 0-59
Второ getUTCSecons() 0-59
Милисекунда getUTCMilliseconds() 0-999

За да проверите разликата между местните вземете методии вземете UTC методи, изпълнете следния код.

// Присвояване на текущо време на променлива
const сега = нова дата ();
// Отпечатване на местни и UTC часови зони
console.log(now.getHours());
console.log(now.getUTCHours());

Този код ще отпечата текущия час и час в UTC часова зона. Ако в момента сте в часовата зона UTC, тогава числата, които програмата ще покаже, ще бъдат същите.

UTC предоставя международен стандарт за време и следователно може да поддържа код според часовите зони, ако вашата програма се нуждае от него.

Заключение

В този урок научихте как да създадете екземпляр на обект Date, как да използвате неговите вградени методи за достъп и модифициране на компонентите на дадена дата. | Повече ▼ подробна информацияотносно часа и датата в JavaScript можете да намерите в мрежата за разработчици на Mozilla.

Да знаете как да работите с дати е важно за много общи задачи в JavaScript, от генериране на редовни отчети до показване на дати и графици в правилната часова зона.

Тагове:

Получаването на текущата дата в JavaScript е много лесно. За това служи обектът Date. Синтаксисът му е доста прост и имената на методите са интуитивни. В примерите по-долу ще ви покажа как да работите с обекта Date ( JavaScript нова дата), за да получите текущата година, месец, ден и час с точност до милисекунда!

Получаване на текущата дата:

За да получите текущата дата в JavaScript, използвайте ключова дума new, за да създадете нов екземпляр на обекта Date.

var date = нова дата(); конзолен дневник (дата);

Този код отпечатва следната информация на конзолата:

//Вторник, 02 февруари 2016 г. 15:46:56 GMT-0500 (Източно стандартно време)

Той показва текущия ден от седмицата, текущия месец, ден от месеца, година и дори текущото време в 24-часов формат. фрагмент " часова зона" означава GMT време и " -0500 ' е разликата в часовите зони между местното време и GMT.

Цитат от Уикипедия: „Средно време по Гринуич (GMT) часова зона) е средното слънчево време в Кралската обсерватория, Гринуич, Лондон." Свързано е с UTC (UTC). « Източно стандартно време' в показаната стойност на датата се отнася за часовата зона на вашия браузър или компютър.

* Моля, обърнете внимание, че GMT ​​и UTC са различни. Ще разгледаме UTC стойностите за минути.

* Също така имайте предвид, че датата в JavaScript се определя от времето в милисекунди, изтекло от полунощ, 01 януари 1970 г., UTC. В един ден има 86 400 000 милисекунди. Диапазонът на обект Date е от -100 000 000 дни до 100 000 000 дни спрямо 01 януари 1970 г. UTC.

* Стойностите, получени чрез метода, споменат по-горе, зависят от системните настройки на вашето устройство. Ако промените настройките на часовника на компютъра, времето, върнато от този метод, също ще се промени.

Добре, премахнахме новите формати за дата на JavaScript и вече сме готови да продължим!

Получаване на деня от седмицата:

За да получите деня от седмицата, използвайте метода JavaScript обектДата getDay():

varday = date.getDay(); конзолен дневник (ден);

*Имайте предвид, че дните от седмицата са номерирани от 0 до 6, неделя = 0, понеделник = 1, вторник = 2 и т.н.

Вземете месеца:

За да получите текущия месец на текущата година, използвайте метода getMonth(). Преди това казах, че имената на методите са интуитивни!

var month = date.getMonth(); конзолен дневник (месец); //един

* Имайте предвид, че подобно на дните от седмицата, месеците се връщат в цифров формат от 0 до 11; Януари = 0, февруари = 1, март = 2 и така нататък.

Получаване на деня от месеца:

За да получите деня от месеца, можете да използвате метода GetDate().

var dayOfMonth = date.getDate(); дневник на конзолата (dayOfMonth); //2

* Методът GetDate() връща дните от месеца, номерирани от 1 до 31; номер 1 съответства на първия ден от месеца.

Време за получаване:

За да получите текущото време, се използва методът GetTime().

vartime = date.getTime(); конзолен дневник (време); //1454461242058

Изглежда... странно... Какво е? Виждате броя милисекунди, изминали от 1 януари 1970 г. 00:00:00 UTC. И така, на колко години е това?

1454461242058 ms / 31540000000 ms на година = около 46 години
1970 + 46 години = 2016

Нека проверим, за да сме сигурни:

var year = date.getFullYear(); console.log(година) //2016

Да, това е! Ние просто извеждаме текущата дата и час с помощта на JavaScript нова дата.


За работа с дати и часове в JavaScript има специален обект - Дата. Този обект се поддържа от почти всички версии на JavaScript и може да се използва независимо от проблеми със съвместимостта.

Датата и часът в обекта Date не се съхраняват изрично, а, както в повечето езици за програмиране, като брой милисекунди, изминали от раждането на Unix, т.е. от 0000 часа на 1 януари 1970 г. Отличителна черта на обекта Date е, че всички стойности на диапазона имат индекси, базирани на нула. Това означава, че януари ще има индекс 0 (месец #0), а декември ще бъде единадесетият месец вместо дванадесетият. Същото важи и за дни от седмицата, часове, минути и т.н.

Създаването на обект Date е много просто:

// текуща дата-час var date = new Date(); // дата-час от низ или число var date = new Date(date); // дата-час от отделни стойности var date = нова дата (година, месец, ден, час, минута, секунда, милисекунда);

Обектът Date има редица много полезни методи, с които можете да работите отделни компонентидата-час, както и да провери коректността и правилното извеждане на датата в указания формат.

Методи за извличане на компоненти за дата-час
getFullYear Връща годината (например 2011).
getYear Връща годината. Целта на метода getYear обаче е същата като целта на getFullYear този методе остаряла и не се препоръчва за употреба, т.к резултатите от работата му не са еднозначни: за диапазон от дати от 1900 до 1999 г. методът връща номера на годината във века (двуцифрено, например 77), а за дати извън този диапазон пълната стойност е върнат (четирицифрен, например 2009).
getMonth Връща месеца.
getDate Връща деня от месеца (номер в месеца).
getHours Връща часа.
getMinutes Връща минутата.
getSeconds Връща секунда.
getMilliseconds Връща милисекундата.
getDay Връща номера на деня от седмицата.
getTime Връща отместването в милисекунда, съхранено от обекта.
Методи за промяна на компонентите за дата-час
setFullYear Задава годината.
setYear Задава годината. Целта на метода setYear е подобна на целта на setFullYear, но този метод е отхвърлен и отхвърлен (както и методът getYear).
setMonth Задава месеца.
setDate Задава датата в месеца (ден от месеца).
setHours Настройва часа.
setMinutes Настройва минутите.
setSeconds Задава второто.
setMilliseconds Задава милисекунда.
setTime Задава отместване в милисекунди спрямо 00:00:00 01/01/1970
Функции за форматиране и извеждане на дата-час
toString Връща низово представяне на дата и час.
toUTCString Връща низово представяне на дата и час, преобразувани в UTC време. Форматът на върнатия низ спазва всички интернет стандарти.
toGMTString Връща низово представяне на дата и час, преобразувани в GMT (средно време по Гринуич). Форматът на върнатия низ спазва всички интернет стандарти.
toLocaleString Подобно на toString, но връща низово представяне на датата и часа, форматирани според локала на потребителя.
toTimeString Връща низово представяне на времето (низът съдържа само времето).
toDateString Връща низовото представяне на датата (низът съдържа само датата).
toLocaleTimeString Подобно на toTimeString, но връща низово представяне на времето, форматирано според локала на потребителя.
toLocaleDateString Подобно на toDateString, но връща низово представяне на датата, форматирано според локала на потребителя.
Допълнителни функции
getTimezoneOffset Връща отместването на местното време на компютъра на потребителя спрямо UTC. Отместването се връща за минути.
анализирам Функцията ви позволява да проверите коректността на датата-час, записана като низ. Ако низът е правилен, обект Date ще бъде създаден веднага.

Обектът Date също съдържа редица методи за работа с UTC дати. Тези функции са напълно подобни на вече разгледаните, но съдържат префикса "UTC" в името и работят само с "универсално" време: getUTCSeconds, setUTCFullYear и т.н.

Помислете за пример за работа с дати:

И ето резултата от този скрипт:


Както можете да видите, представянето на датата се различава значително в зависимост от използвания формат. Следователно, когато работите с дата-час, трябва да следвате няколко прости правила:

1. Ако е възможно, използвайте UTC или GMT формати. Това е особено важно при създаване на разпределени решения (например клиенти платежни системи). Използването на общо референтно време ще ви даде гаранции (макар и не сто процента), че и вие, и вашият отдалечен партньор ще интерпретирате получените данни по един и същи начин.

2. Има смисъл да се използват локализирани дата и час само когато се показват на потребителя. Във всички останали случаи е по-добре да откажете локализирани данни.

3. Ако все пак трябва да използвате местна дата и час - не забравяйте да вземете предвид отместването на местното време спрямо референтното време (UTC или GMT).

Следването на тези правила ще ви спести от повечето логически грешки и недостатъци, което означава, че ще направи кода ви по-стабилен и с високо качество.

Здравейте всички!
Често ми се налага да работя със статистически данни и има много обвързани с дати. Освен това една и съща дата може да се използва на страницата в различни формати (например удобен за машини и за хора). Мисля, че повечето от вас имат доста добра представа за целия ужасяващ код, който излиза от използването на обекта Date.
Например, за да получим текущата дата във формат ДД.ММ.ГГГГ, трябва да направим следното:
var d = new Date(), fd = d.getDate() + "." + (d.getMonth()+1) + "." + d.getFullYear();
И когато има много такива линии? Лесно ли се помни, че в javascript месецът започва от нула, когато се развива не само върху него? Или фактът, че тук има милисекунди, а не секунди, както почти навсякъде в бекенда? Можете да разрешите някои от проблемите с популярната библиотека Moment.js, но тя работи много бавно.
Въпросната библиотека решава тези проблеми.
Ако се интересувате, предлагам ви да прочетете това кратко ревю.

TempusJS е много синтактична захар на обекта Date, така че е много бърз. Синтаксисът на самата библиотека е доста прост. Например, предишният пример може да бъде написан така:
var fd = tempus().format("%d.%m.%Y");
Сега за скоростта. В спойлера можете да видите сравнение на Tempus с Moment и естественото форматиране на датата (вижте по-горе):

Сравнение на родния JS, MomentJS и TempusJS

Вземете текущата дата
Native JS x 2,175,575 ops/sec ±0,75% (96 извадки) Момент x 284,864 ops/sec ±0,85% (96 извадки) Tempus x 2,086,081 ops/sec ±0,73% (97 извадки)
Форматиране
Native JS x 1,637,517 ops/sec ±0,61% (100 извадки) Момент x 8,808 ops/sec ±1,07% (100 извадки) Tempus x 942,815 ops/sec ±0,68% (94 извадки)
Автоматично откриване и анализ на дата
Native JS x 11 204 316 ops/sec ±0,81% (88 извадки) Момент x 38 511 ops/sec ±1,41% (95 извадки) Tempus x 93 973 ops/sec ±1,06% (85 извадки)
Разбор на дата по формат
Момент x 46,293 ops/sec ±0,63% (100 проби) Tempus x 109,947 ops/sec ±0,93% (99 проби)
Разбор и валидиране
Момент x 44 588 ops/sec ±1,09% (90 проби) Tempus x 103 439 ops/sec ±0,90% (94 проби)
Резултатите са от лаптопа ми Google Chrome 30.0.1599.114. В други браузъри резултатите са различни, но съотношението остава приблизително същото.
За тестове е използвана библиотеката benchmark.js
Сравнителни показатели за други функции, можете да видите.

И така, предимствата на тази библиотека могат да бъдат записани по следния начин:

  • Поддържа IE6+, Chrome, Firefox, Opera;
  • Поддържа вериги за обаждания;
  • Месеците могат да започват с 1 (по подразбиране) вместо с нула;
  • Милисекундите могат да бъдат деактивирани (по подразбиране) или активирани;
  • Бърза работа (Тъй като в много случаи се използва собственият обект Date за браузъра, чиято реализация е написана на по-бързи езици);
  • Поддържа потребителски формати и добавки
  • Валидирането на датата е много бързо и зависи само от функциите, които задават датата (тъй като валидирането става още при въвеждане на стойности и не се изчислява отделно);
  • Многоезичие и автоматично разпознаване на езика на потребителя.

Тук ще говорим само за някои от функциите.

Форматиране и парсване

И така, за начало, още един пример за форматиране на дата. Тук също използваме верижно обаждане. В края на всяка настройка на стойността получаваме обект TempusDate, който можем да използваме по-надолу по веригата. Пример:
tempus(). // получавам нова дата calc((месец: -1)). // намали го с един месец format("%d.%m.%Y"); // Изход като низ
Така ще получим същия ден, час и секунда, но преди месец. Това е полезно за получаване на отчети за последния месец.

Следващият пример е разбор на дата.
// Връща обект TempusDate с дата "2013-11-18" tempus("11/18/2013"); // Връща обект TempusDate с дата "2013-12-12" tempus("2013-12-12", "%Y-%m-%d"));
Tempus може автоматично да открие някои известни формати. Освен това можете да посочите конкретен формат, след което анализът ще бъде по-бърз. Освен това можете да зададете датата, която ще бъде върната, ако анализът е неуспешен:
// Защото „123“ не съответства на формата „%d.%m.%Y“, тогава // ще бъде върнат обект, съдържащ датата 2013-01-01 tempus(„123“, „%d.%m.%Y ", темп ());
Можете да видите списъка с формати по подразбиране

Сега нека променим формата на вече форматираната дата
// "2013-11-05" tempus("11/05/2013").format("%Y-%m-%d"); // Или така // "Октомври, 12" tempus("2013-10-12 12:31:01", "%Y-%m-%d %H:%M:%S").format(" % B, %d");

Освен това можете да използвате локализация за форматиране. По подразбиране ще бъде избран езикът на потребителя (взет от браузъра) или езикът по подразбиране, ако езикът на потребителя не е намерен сред наличните езици на Tempus.
// Задаване на език tempus.lang("ru"); // Стандартен формат за използване // "ноември 05" tempus(1383609600).format("%B, %d");
На този моментИма само два езика - руски и английски, така че ще се радвам да помогна.

Валидиране

Проверката на датата се извършва по следния начин:
// Връща false tempus("08/32/2013", "%d.%m.%Y").valid(); // Връща истински tempus("00:00 01/01/2012", "%H:%M %d.%m.%Y").valid();

В случай на грешка можете да видите полетата, в които е възникнала - навсякъде, където стойността не е false:
// Връща ("year":-5,"month":false,"day":false,"hours":false, // "minutes":false,"seconds":false,"milliseconds":false) tempus (). година (-5). // задаваме година=-5, т.е. невалидни грешки(); // получаваме обект с грешки

Периоди от време

Понякога трябва да получим броя години (например възраст), месеци, дни и т.н. между две дати. За да направим това, можем да използваме метода между, който намира разликата между две дати и връща желан формат("година", "месец", "ден", "часове", "минути", "секунди", "милисекунди").
Ето прост пример за получаване на броя на месеците между 1 ноември 2013 г. и 5 май 2014 г.:
// Връща 6 tempus().between(tempus(), "month");
Или колко часа остават до новата година
tempus().between(tempus(), "часове");
В последния пример можете да видите, че посочих само годината. Когато зададете стойност на масив или обект, липсващите стойности ще бъдат
изпълнен с минимален. Списък на константите с минимални стойности, можете да видите в документацията.

Също така можем да променим всяка дата с помощта на функцията calc:
// Връща TempusDate с дата 2012-01-01 tempus().calc((година: 1, месец: -4, ден: -1));

Собствени формати

Прилагаме собствен формат за месеца, който може да приема стойности от 1 до 12 (вместо 01 до 12):
// Регистриране на нов формат tempus.registerFormat("%q", // директива - %q функция(дата) ( // Посочете функцията за форматиране тук, т.е. какво ще бъде заменено за %q return date.month(); ) , функция(стойност) ( ​​// И тук е функцията за анализ var v = Number(стойност); return (месец: (isNaN(v) ? undefined: v) ); ), 1, // Минимална дължина на тази стойност 2 може да вземе , // Максимална дължина "номер" // Тип); // Тестване // Ще върне "01.1.2013"; tempus((година: 2013, месец: 1, ден: 1)).format("%d.%q.%Y"); // Връща ("година":2013,"месец":2,"ден":10,"часове":0,"минути":0,"секунди":0); tempus("10.2.2013", "%d.%q.%Y").get();
Когато се регистрирате, може да забележите, че някои параметри са зададени отделно, докато можете да използвате регулярен израз. Всъщност първоначално го имаше, но след изоставянето му скоростта се увеличи няколко десетки пъти.
Ако трябва да премахнете някакъв формат, използвайте unregisterFormat:
tempus.unregisterFormat("%d"); // Връща "%d.01.2013", защото директивата %d вече не съществува. tempus.format((година: 2013, месец: 1, ден: 1), "%d.%m.%Y");

Getters/Setters

Можете да получите/зададете някои стойности, като използвате year(), month(), day(), hours(), minutes(), seconds(), milliseconds(), dayOfWeek(), utc(), timestamp() или задайте функции (). Например:
tempus(). // Вземете текущата дата година (1900). // Оставете всичко както е, но задайте годината на 1900 leapYear(); // Проверете дали е високосна година, false в този случай tempus().year(); // И така получаваме текущата година в числова форма

Генериране на дата

Можете да генерирате дата по много начини, пълен списъкпараметрите са в документацията. Ето един минимален пример.
// връща ["29.03.2013", "30.03.2013", "31.03.2013", "01.04.2013", "02.04.2013"]; tempus.generate(( dateFrom: "20130329", formatFrom: "%Y.%m.%d", dateTo: "20130402", период: (ден: 1), формат: "%d.%m.%Y" ));
Това може да бъде полезно за показване на диаграми по дати и промяна на формата на дисплея директно на клиента, без заявки към бекенда. Датата може да се генерира като масив или като обекти, където самите дати ще се използват като ключове (това е полезно, когато трябва да обвържем събитие с дата, например, когато си правим собствен календар). Освен това датите могат да бъдат групирани по дни, седмици, месеци, часове, години - каквото и да е. Това може да се приложи и към календара.

Плъгини

Не на последно място, плъгини. Тук разширяваме фабриката, за да генерираме произволна дата. Освен това се нуждаем от класа TempusDate, който може да бъде намерен в tempus.classes(). Ето примерен плъгин:
(функция (tempus) ( var TempusDate = tempus.classes("TempusDate"); tempus.randomDate = function() ( var date = new TempusDate(); date.year(Math.floor((Math.random()*( tempus.MAX_YEAR - tempus.MIN_YEAR)) + tempus.MIN_YEAR)). month(Math.floor((Math.random()*(tempus.MAX_MONTH - tempus.MIN_MONTH)) + tempus.MIN_MONTH)).day(Math. floor((Math.random()*(date.dayCount() - tempus.MIN_DAY)) + tempus.MIN_DAY)).hours(Math.floor((Math.random()*(tempus.MAX_HOURS - tempus.MIN_HOURS) ) + tempus.MIN_HOURS)).минути(Math.floor((Math.random()*(tempus.MAX_MINUTES - tempus.MIN_MINUTES)) + tempus.MIN_MINUTES)).seconds(Math.floor((Math.random() *(tempus.MAX_SECONDS - tempus.MIN_SECONDS)) + tempus.MIN_SECONDS)); дата на връщане; ); ))(tempus); // Сега можем да създаваме дати като тази var someRandomDate = tempus.randomDate();
Мисля, че по този начин ще бъде възможно удобно да се пишат джаджи с помощта на jQuery + Tempus, Angular + Tempus и т.н.

Източници

Можете да го инсталирате, като изтеглите изходния код от github:
https://github.com/crusat/tempus-js/releases
Или чрез bower:
$ bower инсталирайте tempus
Трябва ви само един файл - tempus.js или tempus.min.js.

Надявам се, че дадена библиотекаще бъде полезно, а също така би било интересно да се знае какво липсва в него, за да се развие библиотеката в правилната посока. Благодаря за вниманието!
P.S. Благодаря за поканата!