diff --git a/1-js/05-data-types/10-date/7-get-seconds-to-tomorrow/solution.md b/1-js/05-data-types/10-date/7-get-seconds-to-tomorrow/solution.md index a89c8b3e..dd8ba927 100644 --- a/1-js/05-data-types/10-date/7-get-seconds-to-tomorrow/solution.md +++ b/1-js/05-data-types/10-date/7-get-seconds-to-tomorrow/solution.md @@ -13,3 +13,19 @@ function getSecondsToTomorrow() { return Math.round(diff / 1000); // convert to seconds } ``` + +Alternative solution: + +```js run +function getSecondsToTomorrow() { + let now = new Date(); + let hour = now.getHours(); + let minutes = now.getMinutes(); + let seconds = now.getSeconds(); + let totalSecondsToday = (hour * 60 + minutes) * 60 + seconds; + let totalSecondsInADay = 86400; + + return totalSecondsInADay - totalSecondsToday; +} + +``` diff --git a/1-js/05-data-types/10-date/8-format-date-relative/solution.md b/1-js/05-data-types/10-date/8-format-date-relative/solution.md index 87864be7..24fec997 100644 --- a/1-js/05-data-types/10-date/8-format-date-relative/solution.md +++ b/1-js/05-data-types/10-date/8-format-date-relative/solution.md @@ -43,3 +43,34 @@ alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 min. ago" // yesterday's date like 31.12.2016, 20:00 alert( formatDate(new Date(new Date - 86400 * 1000)) ); ``` + +Alternative solution: + +```js run +function formatDate(date) { + let dayOfMonth = date.getDate(); + let month = date.getMonth() + 1; + let year = date.getFullYear(); + let hour = date.getHours(); + let minutes = date.getMinutes(); + let diffMs = new Date() - date; + let diffSec = Math.round(diffMs / 1000); + 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; + + if (diffSec < 1) { + return 'right now'; + } else if (diffMin < 1) { + return `${diffSec} sec. ago` + } else if (diffHour < 1) { + return `${diffMin} min. ago` + } else { + return `${dayOfMonth}.${month}.${year} ${hour}:${minutes}` + } +} +```