◐ Shell
clean mode source ↗

Date and Time by MykolaSopiha · Pull Request #168 · javascript-tutorial/uk.javascript.info

@@ -1,50 +1,50 @@ To get the time from `date` till now -- let's substract the dates. Щоб отримати час від `date` дотепер -- давайте віднімемо дати.
```js run demo function formatDate(date) { let diff = new Date() - date; // the difference in milliseconds let diff = new Date() - date; // різниця в мілісекундах
if (diff < 1000) { // less than 1 second return 'right now'; if (diff < 1000) { // менше 1 секунди return 'прямо зараз'; }
let sec = Math.floor(diff / 1000); // convert diff to seconds let sec = Math.floor(diff / 1000); // перетворити різницю до секунд
if (sec < 60) { return sec + ' sec. ago'; return sec + ' сек. назад'; }
let min = Math.floor(diff / 60000); // convert diff to minutes let min = Math.floor(diff / 60000); // перетворити різницю до хвилин if (min < 60) { return min + ' min. ago'; return min + ' хв. назад'; }
// format the date // add leading zeroes to single-digit day/month/hours/minutes // форматувати дату // додати нулі до однозначних днів/місяців/годин/хвилин let d = date; d = [ '0' + d.getDate(), '0' + (d.getMonth() + 1), '' + d.getFullYear(), '0' + d.getHours(), '0' + d.getMinutes() ].map(component => component.slice(-2)); // take last 2 digits of every component ].map(component => component.slice(-2)); // отримати останні 2 цифри кожного компоненту
// join the components into date // з’єднати компоненти в дату return d.slice(0, 3).join('.') + ' ' + d.slice(3).join(':'); }
alert( formatDate(new Date(new Date - 1)) ); // "right now" alert( formatDate(new Date(new Date - 1)) ); // "прямо зараз"
alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30 sec. ago" alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30 сек. назад"
alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 min. ago" alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 хв. назад"
// yesterday's date like 31.12.2016 20:00 // вчорашня дата, як 31.12.2016 20:00 alert( formatDate(new Date(new Date - 86400 * 1000)) ); ```
Alternative solution: Альтернативне рішення:
```js run function formatDate(date) { Expand All @@ -58,19 +58,19 @@ function formatDate(date) { let diffMin = diffSec / 60; let diffHour = diffMin / 60;
// formatting // форматування year = year.toString().slice(-2); month = month < 10 ? '0' + month : month; dayOfMonth = dayOfMonth < 10 ? '0' + dayOfMonth : dayOfMonth; hour = hour < 10 ? '0' + hour : hour; minutes = minutes < 10 ? '0' + minutes : minutes;
if (diffSec < 1) { return 'right now'; return 'прямо зараз'; } else if (diffMin < 1) { return `${diffSec} sec. ago` return `${diffSec} сек. назад` } else if (diffHour < 1) { return `${diffMin} min. ago` return `${diffMin} хв. назад` } else { return `${dayOfMonth}.${month}.${year} ${hour}:${minutes}` } Expand Down