Guest User

Untitled

a guest
Nov 24th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. Date.now() – получить миллисекунды щас (быстрее чем +new Date(); !! )
  2.  
  3. performance.now() - (кроме IE9-) возвращает количество миллисекунд, прошедшее с начала загрузки страницы.
  4. Причём именно с самого начала, до того, как загрузился HTML-файл, если точнее –
  5. с момента выгрузки предыдущей страницы из памяти.
  6.  
  7. function isDate(obj){
  8. if (obj.getTime) return true;
  9. return false;
  10. }
  11.  
  12. // нормализуем дни недели
  13. function getWeekDay(date) {
  14. var days = ['вс','пн','вт','ср','чт','пт','сб'] ;
  15. return days[ date.getDay() ];
  16. }
  17.  
  18. // Изменим прототип футкции Date.toLocaleFormat() под Рунет :
  19. Date.prototype.toLocaleFormat = function(format) {
  20. var f = {y : this.getYear() + 1900,m : this.getMonth() + 1,d :this.getDate(),H : this.getHours(),M : this.getMinutes(),S : this.getSeconds()}
  21. for(var k in f)
  22. format = format.replace('%' + k, f[k] < 10 ? "0" + f[k] : f[k]);
  23. return format;
  24. };
  25. new Date().toLocaleFormat('%d.%m.%y %H:%M:%s'); // out
  26.  
  27. /// прошло -- времени
  28. function difftDate(date) {
  29. var diff = new Date() - date; // мс
  30. if (diff < 5000) { // прошло менее 5 секунды
  31. return 'только что';
  32. }
  33. var sec = Math.floor( diff / 1000 );
  34. if (sec < 60) {
  35. return sec + ' сек. назад';
  36. }
  37. var min = Math.floor( diff / 60000 );
  38. if (min < 60) {
  39. return min + ' мин. назад';
  40. }
  41. var hrs = Math.floor( min / 60 );
  42. if (hrs < 24) {
  43. return hrs + ' ч. назад';
  44. }
  45. // форматировать дату, с учетом того, что месяцы начинаются с 0
  46. var d = date;
  47. d = ['0'+d.getDate(),'0'+(d.getMonth()+1),''+d.getFullYear(),'0'+d.getHours(),'0'+d.getMinutes() ];
  48. for(var i=0; i<d.length; i++) {
  49. d[i] = d[i].slice(-2);
  50. }
  51. return d.slice(0,3).join('.')+' '+d.slice(3).join(':');
  52. }
  53.  
  54. /////// - тонкая настройка для локали
  55. var date = new Date(2017, 11, 31, 23, 59, 0);
  56. var options = {
  57. era: 'long', // short
  58. year: 'numeric',
  59. month: 'long',
  60. day: 'numeric',
  61. weekday: 'long', // short
  62. //timezone: 'UTC',
  63. hour: 'numeric',
  64. minute: 'numeric',
  65. //second: 'numeric'
  66. };
  67. alert( date.toLocaleString("ru", options) ); // среда, 31 декабря 2014 г. н.э. 12:30:00
  68. alert( date.toLocaleString("en-US", options) ); // Wednesday, December 31, 2014 Anno Domini 12:30:00 PM
  69.  
  70. /// cекунд до завтра
  71. function getSecondsToTomorrow() {
  72. var now = new Date();
  73. // создать объект из завтрашней даты, без часов-минут-секунд
  74. var tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);
  75. var diff = tomorrow - now; // разница в миллисекундах
  76. return Math.round(diff / 1000); // перевести в секунды
  77. }
  78.  
  79. // форматирование даты
  80. function formatDate(date) {
  81.  
  82. var dd = date.getDate();
  83. if (dd < 10) dd = '0' + dd;
  84.  
  85. var mm = date.getMonth() + 1;
  86. if (mm < 10) mm = '0' + mm;
  87.  
  88. var yy = date.getFullYear() % 100;
  89. if (yy < 10) yy = '0' + yy;
  90.  
  91. return dd + '.' + mm + '.' + yy;
  92. }
  93. var d = new Date(2014, 0, 30); // 30 Янв 2014
  94. alert( formatDate(d) ); // '30.01.14'
  95.  
  96. .................................
  97. // начало, конец дня разница
  98. var now = new Date();
  99. // создать объект из текущей даты, без часов-минут-секунд
  100. var today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); // начало дня
  101.  
  102. var diff = now - today; // разница в миллисекундах
  103. alert( Math.round(diff / 1000) ); // перевести в секунды
  104.  
  105. Для получения оставшихся до конца дня секунд нужно из «завтра 00ч 00мин 00сек» вычесть текущее время.
  106. Чтобы сгенерировать «завтра», нужно увеличить текущий день на 1:
  107. var now = new Date();
  108. // создать объект из даты, без часов-минут-секунд
  109. var tomorrow = new Date(now.getFullYear(), now.getMonth(),now.getDate()+1);
  110. var diff = tomorrow - now; // разница в миллисекундах
  111. alert( Math.round(diff / 1000) ); // перевести в секунды
  112. ...............................
Add Comment
Please, Sign In to add comment