Math.round отличается от firefox? Или дата другая?
var p = Math.round(((today - start) / (end - start)) * 100);
В firefox p стоит «N / A», в crome это нормальный номер. Почему?
today, start и end все являются объектами Date.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Math.round() принимает число в качестве параметра. Не имеет смысла давать ему объект Date. См. ссылка и / или ECMAScript спецификация.
Перед расчетом следует решить, на каком агрегате вы работаете. Наносекунды, миллисекунды, секунды, часы, ...?
Например, чтобы получить часть миллисекунд объекта даты сегодня по всемирному координированному времени, вы можете использовать:
var milliseconds = today.getUTCMilliseconds();
Почему? Потому что Firefox - в данном случае - реализован ближе к спецификациям ECMAScript.
хорошо, я думаю, что знаю, что случилось. new Date (String) дает не число в firefox, если он не может проанализировать строку, а crome возвращает 0.