JavaScriptでnew Date()した時にInvalid Dateを返すのは、日付の形式にあります。
エラーのになる場合、OKな場合を紹介いたします。ブラウザによっても若干挙動が違うので注意してください。

エラーの例更

var day = new Date(“2016-01-04 13:10:30”); → yyyy-mm-dd hh:ii:ss
alert(day); → Invalid Date

上記の書き方は、ブラウザによっては問題が無い場合があるので注意してください。

OKの例

var day = new Date(" 2016-01-04" ); → yyyy-mm-dd
var day = new Date(" 2016/01/04" ); → yyyy/mm/dd
var day = new Date(" 2016/01/04 13:10:30" ); → yyyy/mm/dd hh:ii:ss
var day = new Date(" 01/04/2016" ); → mm/dd/yyyy 
var day = new Date(" 01/04/2016 13:10:30" ); → mm/dd/yyyy hh:ii:ss
var day = new Date(" 2016" ," 1" ," 04" ); → " yyyy" ," mm" ," dd"
var day = new Date(" 2016" ," 1" ," 04" ," 13" ," 10" ," 30" ); → " yyyy" ," mm" ," dd" ," hh" ," ii" ," ss"  
var day = new Date(1451880630000); → 
alert(day); → Mon Jan 04 2016 13:10:30 GMT+0900 (東京 (標準時))

(感想 
「yyyy-mm-dd hh:ii:ss」 の形式だけエラーになった。なんかショック・・・。ちなみにエッジ(Edge)ではエラーになりませんでした。