Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Date.now() – получить миллисекунды щас (быстрее чем +new Date(); !! )
- performance.now() - (кроме IE9-) возвращает количество миллисекунд, прошедшее с начала загрузки страницы.
- Причём именно с самого начала, до того, как загрузился HTML-файл, если точнее –
- с момента выгрузки предыдущей страницы из памяти.
- function isDate(obj){
- if (obj.getTime) return true;
- return false;
- }
- // нормализуем дни недели
- function getWeekDay(date) {
- var days = ['вс','пн','вт','ср','чт','пт','сб'] ;
- return days[ date.getDay() ];
- }
- // Изменим прототип футкции Date.toLocaleFormat() под Рунет :
- Date.prototype.toLocaleFormat = function(format) {
- var f = {y : this.getYear() + 1900,m : this.getMonth() + 1,d :this.getDate(),H : this.getHours(),M : this.getMinutes(),S : this.getSeconds()}
- for(var k in f)
- format = format.replace('%' + k, f[k] < 10 ? "0" + f[k] : f[k]);
- return format;
- };
- new Date().toLocaleFormat('%d.%m.%y %H:%M:%s'); // out
- /// прошло -- времени
- function difftDate(date) {
- var diff = new Date() - date; // мс
- if (diff < 5000) { // прошло менее 5 секунды
- return 'только что';
- }
- var sec = Math.floor( diff / 1000 );
- if (sec < 60) {
- return sec + ' сек. назад';
- }
- var min = Math.floor( diff / 60000 );
- if (min < 60) {
- return min + ' мин. назад';
- }
- var hrs = Math.floor( min / 60 );
- if (hrs < 24) {
- return hrs + ' ч. назад';
- }
- // форматировать дату, с учетом того, что месяцы начинаются с 0
- var d = date;
- d = ['0'+d.getDate(),'0'+(d.getMonth()+1),''+d.getFullYear(),'0'+d.getHours(),'0'+d.getMinutes() ];
- for(var i=0; i<d.length; i++) {
- d[i] = d[i].slice(-2);
- }
- return d.slice(0,3).join('.')+' '+d.slice(3).join(':');
- }
- /////// - тонкая настройка для локали
- var date = new Date(2017, 11, 31, 23, 59, 0);
- var options = {
- era: 'long', // short
- year: 'numeric',
- month: 'long',
- day: 'numeric',
- weekday: 'long', // short
- //timezone: 'UTC',
- hour: 'numeric',
- minute: 'numeric',
- //second: 'numeric'
- };
- alert( date.toLocaleString("ru", options) ); // среда, 31 декабря 2014 г. н.э. 12:30:00
- alert( date.toLocaleString("en-US", options) ); // Wednesday, December 31, 2014 Anno Domini 12:30:00 PM
- /// cекунд до завтра
- function getSecondsToTomorrow() {
- var now = new Date();
- // создать объект из завтрашней даты, без часов-минут-секунд
- var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);
- var diff = tomorrow - now; // разница в миллисекундах
- return Math.round(diff / 1000); // перевести в секунды
- }
- // форматирование даты
- function formatDate(date) {
- var dd = date.getDate();
- if (dd < 10) dd = '0' + dd;
- var mm = date.getMonth() + 1;
- if (mm < 10) mm = '0' + mm;
- var yy = date.getFullYear() % 100;
- if (yy < 10) yy = '0' + yy;
- return dd + '.' + mm + '.' + yy;
- }
- var d = new Date(2014, 0, 30); // 30 Янв 2014
- alert( formatDate(d) ); // '30.01.14'
- .................................
- // начало, конец дня разница
- var now = new Date();
- // создать объект из текущей даты, без часов-минут-секунд
- var today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); // начало дня
- var diff = now - today; // разница в миллисекундах
- alert( Math.round(diff / 1000) ); // перевести в секунды
- Для получения оставшихся до конца дня секунд нужно из «завтра 00ч 00мин 00сек» вычесть текущее время.
- Чтобы сгенерировать «завтра», нужно увеличить текущий день на 1:
- var now = new Date();
- // создать объект из даты, без часов-минут-секунд
- var tomorrow = new Date(now.getFullYear(), now.getMonth(),now.getDate()+1);
- var diff = tomorrow - now; // разница в миллисекундах
- alert( Math.round(diff / 1000) ); // перевести в секунды
- ...............................
Add Comment
Please, Sign In to add comment