Разница между оператором % в PHP и JavaScript при работе с отрицательными числами заключается в том, что в каждом из этих языков есть свои особенности.
В PHP оператор % возвращает остаток от деления, и при применении к отрицательным числам результат также будет отрицательным. sky.pro purpleschool.ru
В JavaScript при применении оператора % к отрицательным числам зачастую получаются отрицательные результаты. sky.pro Чтобы обеспечить положительный итог, можно использовать формулу: (n % m + m) % m, где n — исходное число, а m — делитель. sky.pro
Также для корректной обработки отрицательных чисел в JavaScript можно использовать специальную функцию модуля, которую можно реализовать с помощью функции Math.floor. sky.pro
Ещё одна причина разницы в поведении операторов при работе с отрицательными числами в PHP и JavaScript — разные внутренние представления чисел: PHP хранит целочисленные значения в виде 64-битных целых чисел, а JavaScript использует 64-битный формат с плавающей запятой. stackoverflow.com