renovations

This commit is contained in:
Ilya Kantor 2015-04-01 19:08:41 +03:00
parent 0e9ceb2b3a
commit 150d92f10f
47 changed files with 290 additions and 110 deletions

View file

@ -3,15 +3,18 @@ function formatDate(date) {
// перевести секунды в миллисекунды и преобразовать к Date
date = new Date(date * 1000);
} else if (typeof date == 'string') {
// разобрать строку и преобразовать к Date
date = date.split('-');
date = new Date(date[0], date[1] - 1, date[2]);
// строка в стандартном формате автоматически будет разобрана в дату
date = new Date(date);
} else if (Array.isArray(date)) {
date = new Date(date[0], date[1], date[2]);
}
// преобразования для поддержки полиморфизма завершены,
// теперь мы работаем с датой (форматируем её)
return date.toLocaleString("ru", {day: '2-digit', month: '2-digit', year: '2-digit'});
/*
// можно и вручную, если лень добавлят в старый IE поддержку локализации
var day = date.getDate();
if (day < 10) day = '0' + day;
@ -23,6 +26,7 @@ function formatDate(date) {
if (year < 10) year = '0' + year;
var formattedDate = day + '.' + month + '.' + year;
return formattedDate;
*/
}

View file

@ -7,7 +7,7 @@
Ее первый аргумент должен содержать дату в одном из видов:
<ol>
<li>Как объект `Date`.</li>
<li>Как строку в формате `yyyy-mm-dd`.</li>
<li>Как строку, например `yyyy-mm-dd` или другую в стандартном формате даты.</li>
<li>Как число *секунд* с `01.01.1970`.</li>
<li>Как массив `[гггг, мм, дд]`, месяц начинается с нуля</li>
</ol>

View file

@ -53,8 +53,8 @@ alert( toString.call(arr) ); // [object Array]
var date = new Date;
alert( toString.call(date) ); // [object Date]
var obj = { name: "Вася" };
alert( toString.call(date) ); // [object Object]
var user = { name: "Вася" };
alert( toString.call(user) ); // [object Object]
```
В первой строке мы взяли метод `toString`, принадлежащий именно стандартному объекту `{}`. Нам пришлось это сделать, так как у `Date` и `Array` -- свои собственные методы `toString`, которые работают иначе.