Вам не нужен суб месяц. Просто используйте другой формат как ATOM/RFC3339. Она полностью поддерживает javascript Date class
$date = new DateTime('2016-01-01');
echo $date->format(DateTime::ATOM);
Результат:
2016-01-01T00:00:00-05:00
Javascript:
var date = new Date('2016-01-01T00:00:00-05:00');
console.log(date)
Как я живу в Бразилии, мой браузер показать, как
Fri Jan 01 2016 03:00:00 GMT-0200 (Horário brasileiro de verão)
Если у вас есть какой-либо от ее формат в качестве входных данных, вы можете использовать DateTime::createFromFormat, а остальные до сих пор же
$date = DateTime::createFromFormat('m/d/Y' , '12/01/2016');
вы можете в конечном итоге также написать, что вход вы даете, что ожидаемый результат и каков реальный результат? – Dragos
Необходимо указать части своей даты отдельно. То, что вы пытаетесь сделать, буквально регулирует дату до более ранней даты, что всегда будет проблематичным. Я объявляю ваш год, месяц и день отдельными переменными (или массивом) и соответствующим образом заполнял их в вашем javascript. – jlbriggs