|
1 | 1 | # Дата и время |
2 | 2 |
|
3 | | -Представляем вам ещё один встроенный объект: [Date](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Date). В нём хранятся дата и время, а также методы их обработки. |
| 3 | +Рассмотрим новый встроенный объект: [Date](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Date). Он хранит в себе дату, время и предоставляет методы управления датой/временем. |
4 | 4 |
|
5 | | -Например, данный объект можно использовать для хранения времени создания/изменения, для измерения времени или просто для вывода текущей даты. |
| 5 | +Например, его можно использовать для хранения времени создания/изменения, для измерения времени или просто для вывода текущей даты. |
6 | 6 |
|
7 | 7 | ## Создание |
8 | 8 |
|
9 | | -Для создания нового объекта `Date` нужно вызвать конструктор `new Date()`: |
| 9 | +Для создания нового объекта `Date` нужно вызвать конструктор `new Date()` с одним из следующих аргументов: |
10 | 10 |
|
11 | 11 | `new Date()` |
12 | | -: При отсутствии аргументов объект `Date` создаётся на текущие дату и время: |
| 12 | +: Без аргументов -- создаёт объект `Date` на текущие дату и время: |
13 | 13 |
|
14 | 14 | ```js run |
15 | 15 | let now = new Date(); |
16 | | - alert( now ); // текущие дата и время |
| 16 | + alert( now ); // показывает текущие дату и время |
17 | 17 | ``` |
18 | 18 |
|
19 | 19 | `new Date(milliseconds)` |
20 | | -: В аргумент можно передать количество миллисекунд (одна тысячная секунды), что поместит в созданный объект `Date`, прошедш object with the time equal to number of milliseconds (1/1000 of a second) passed after the Jan 1st of 1970 UTC+0. |
| 20 | +: Создаёт объект `Date` с временем, равным количеству миллисекунд (тысячная доля секунды), прошедших с 1 января 1970 года UTC+0. |
21 | 21 |
|
22 | 22 | ```js run |
23 | | - // 0 means 01.01.1970 UTC+0 |
| 23 | + // 0 означает 01.01.1970 UTC+0 |
24 | 24 | let Jan01_1970 = new Date(0); |
25 | 25 | alert( Jan01_1970 ); |
26 | 26 |
|
27 | | - // now add 24 hours, get 02.01.1970 UTC+0 |
| 27 | + // теперь добавим 24 часа и получим 02.01.1970 UTC+0 |
28 | 28 | let Jan02_1970 = new Date(24 * 3600 * 1000); |
29 | 29 | alert( Jan02_1970 ); |
30 | 30 | ``` |
31 | 31 |
|
32 | | - Количество миллисекунд, прошедшее с начала 1970 года, обозначается термином *отметка времени* (англ. timestamp). |
| 32 | + Количество миллисекунд, прошедших с начала 1970 года, называется *отметкой времени* (англ. timestamp). |
33 | 33 |
|
34 | | - It's a lightweight numeric representation of a date. We can always create a date from a timestamp using `new Date(timestamp)` and convert the existing `Date` object to a timestamp using the `date.getTime()` method (see below). |
| 34 | + Это легковесное численное представление даты. Всегда можно получить дату из таймстемпа с помощью `new Date(timestamp)` и привести существующий объект `Date` к таймстемпу, используя метод `date.getTime()` (см. ниже). |
35 | 35 |
|
36 | 36 | `new Date(datestring)` |
37 | | -: If there is a single argument, and it's a string, then it is parsed with the `Date.parse` algorithm (see below). |
| 37 | +: Если аргумент всего один, и это строка, то она обрабатывается(?) алгоритмом `Date.parse` (см. ниже). |
38 | 38 |
|
39 | 39 |
|
40 | 40 | ```js run |
41 | 41 | let date = new Date("2017-01-26"); |
42 | 42 | alert(date); |
43 | | - // The time portion of the date is assumed to be midnight GMT and |
44 | | - // is adjusted according to the timezone the code is run in |
45 | | - // So the result could be |
46 | | - // Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time) |
47 | | - // or |
48 | | - // Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time) |
| 43 | + // Временная составляющая даты по умолчанию соответствует полночи по Гринвичу и |
| 44 | + // смещается в соответствии с часовой зоной места выполнения кода |
| 45 | + // Так что в результате можно получить |
| 46 | + // Thu Jan 26 2017 11:00:00 GMT+1100 (восточноавстралийское время) |
| 47 | + // или |
| 48 | + // Wed Jan 25 2017 16:00:00 GMT-0800 (тихоокеанское время) |
49 | 49 | ``` |
50 | 50 |
|
51 | 51 | `new Date(year, month, date, hours, minutes, seconds, ms)` |
52 | | -: Create the date with the given components in the local time zone. Only two first arguments are obligatory. |
| 52 | +: Создаёт объект `Date` с заданными компонентами в местной временной зоне. Обязательны только первые два аргумента. |
53 | 53 |
|
54 | | - Note: |
| 54 | + Учтите: |
55 | 55 |
|
56 | | - - The `year` must have 4 digits: `2013` is okay, `98` is not. |
57 | | - - The `month` count starts with `0` (Jan), up to `11` (Dec). |
58 | | - - The `date` parameter is actually the day of month, if absent then `1` is assumed. |
59 | | - - If `hours/minutes/seconds/ms` is absent, they are assumed to be equal `0`. |
| 56 | + - `year` должен состоять из четырёх цифр: значение `2013` корректно, `98` -- нет. |
| 57 | + - `month` начинается с `0` (январь) по `11` (декабрь). |
| 58 | + - Параметр `date` здесь представляет собой день месяца. Если параметр не задан, то принимается значение `1`. |
| 59 | + - Если параметры `hours/minutes/seconds/ms` отсутствуют, их значением становится `0`. |
60 | 60 |
|
61 | | - For instance: |
| 61 | + Например: |
62 | 62 |
|
63 | 63 | ```js |
64 | 64 | new Date(2011, 0, 1, 0, 0, 0, 0); // // 1 Jan 2011, 00:00:00 |
65 | | - new Date(2011, 0, 1); // the same, hours etc are 0 by default |
| 65 | + new Date(2011, 0, 1); // то же самое, так как часы и проч. равны 0 |
66 | 66 | ``` |
67 | 67 |
|
68 | | - The minimal precision is 1 ms (1/1000 sec): |
| 68 | + Минимальная точность – 1 мс (1/1000 секунды): |
69 | 69 |
|
70 | 70 | ```js run |
71 | 71 | let date = new Date(2011, 0, 1, 2, 3, 4, 567); |
72 | 72 | alert( date ); // 1.01.2011, 02:03:04.567 |
73 | 73 | ``` |
74 | 74 |
|
75 | | -## Access date components |
| 75 | +## Получение компонентов даты |
76 | 76 |
|
77 | | -Из объекта `Date` можно выделить и более конкретные значения, такие как год или месяц. Для этого используется множество методов, но если их категоризировать, то они легко запоминаются: |
| 77 | +Существует множество методов получения года, месяца и т.д. из объекта `Date`. Но если их классифицировать, то они легко запоминаются: |
78 | 78 |
|
79 | 79 | [getFullYear()](mdn:js/Date/getFullYear) |
80 | | -: Возвращаются четыре цифры, соответствующие году. |
| 80 | +: Получаем год (4 цифры) |
81 | 81 |
|
82 | 82 | [getMonth()](mdn:js/Date/getMonth) |
83 | | -: Получаем порядковый номер месяца **от 0 до 11**. |
| 83 | +: Получаем месяц, **от 0 до 11**. |
84 | 84 |
|
85 | 85 | [getDate()](mdn:js/Date/getDate) |
86 | | -: Возвращается день месяца, от 1 до 31, что несколько противоречит названию метода. |
| 86 | +: Получаем день месяца, от 1 до 31, что несколько противоречит названию метода. |
87 | 87 |
|
88 | 88 | [getHours()](mdn:js/Date/getHours), [getMinutes()](mdn:js/Date/getMinutes), [getSeconds()](mdn:js/Date/getSeconds), [getMilliseconds()](mdn:js/Date/getMilliseconds) |
89 | 89 | : Получаем, соответственно, часы, минуты, секунды или миллисекунды. |
|
95 | 95 | Кроме того, можно получить определённый день недели: |
96 | 96 |
|
97 | 97 | [getDay()](mdn:js/Date/getDay) |
98 | | -: Возвращается значение в пределах от `0` (воскресенье) до `6` (суббота). Несмотря на то, что в ряде стран за первый день недели принят понедельник, в JavaScript начало недели приходится на воскресенье. |
| 98 | +: Возвращает день недели от `0` (воскресенье) до `6` (суббота). Несмотря на то, что в ряде стран за первый день недели принят понедельник, в JavaScript начало недели приходится на воскресенье. |
99 | 99 |
|
100 | 100 | **Все вышеперечисленные методы возвращают значения в соответствии с местной часовой зоной.** |
101 | 101 |
|
|
0 commit comments