JSFiddle - React, Tailwind, and code Playground
HTML
<p>Фикс для Firefox. Исправляем дату:</p>
<div></div>
CSS
.r {
color: #f00;
}
.g {
color: #080;
}
JavaScript
console.clear();
window.Date = function (Date) {
var offset = 0, // империческим путем полученный оффсет
unbind = Function.bind.bind(Function.bind);
/*
function __instant(constructor, args) {
return new (unbind(constructor, null).apply(null, args));
}
//*/
return function () {
var date = new (unbind(Date, null).apply(null, arguments));
var utc = date.getTime() + (date.getTimezoneOffset() * 60000);
var nd = new Date(utc + (3600000*offset));
if (nd.getHours()==23)
nd = new Date(utc + (3600000*1));
return new Date(
Date.UTC(
nd.getFullYear(),
nd.getMonth(),
nd.getDate(),
nd.getHours(),
nd.getMinutes(),
nd.getSeconds()
)
);
}
}(Date);
/// --- TEST ---
var div = document.querySelector("div");
console.log = function(s) {
div.innerHTML += '<div>' +
s.replace(/(\d{4})([\-\,\/])(\d{2})\2(\d{2})/g, '<span class="r">$1$2$3$2$4</span>')
.replace(/(\w+\s+\d{2}\s+\d{4})/g, '<span class="g">$1</span>') +
'</div>'
}
console.log("new Date(): " + new Date());
console.log('new Date("2015-01-07"): ' + new Date("2015-01-07"));
console.log('new Date("2015/01/07"):' + new Date("2015/01/07"));
console.log('new Date("2014-12-08"): ' + new Date("2014-12-08"));
console.log('new Date("2014/12/25"):' + new Date("2014/12/25"));
for (var i=1;i<32;i++)
console.log("new Date(2014,11,"+i+"): " + new Date(2014,11,i));
for (var i=1;i<31;i++)
console.log("new Date(2015,0,"+i+"): " + new Date(2015,0,i));