I have the following function in JS:
var startDate = stringToDate('12/01/2016','mm/dd/yyyy','/');
var endDate = stringToDate('01/01/2017','mm/dd/yyyy','/');
function compareDate(_date) {
  var val1 = ( startDate <= _date)
  var val2 = ( endDate >= _date )
  var val = val1 && val2
  log('--------')
  log(_date)
  log(startDate)
  log(endDate)
  log(val1)
  log(val2)
  log(val)
  log('--------')
  return val
}
LOGS
[17-02-10 13:25:14:145 EET] Fri Dec 02 2016 00:00:00 GMT+0200 (EET)
[17-02-10 13:25:14:146 EET] Thu Dec 01 00:00:00 GMT+02:00 2016
[17-02-10 13:25:14:147 EET] Sun Jan 01 00:00:00 GMT+02:00 2017
[17-02-10 13:25:14:147 EET] false
[17-02-10 13:25:14:148 EET] false
[17-02-10 13:25:14:148 EET] false
[17-02-10 13:25:14:149 EET] --------
[17-02-10 13:25:14:149 EET] --------
[17-02-10 13:25:14:150 EET] Sat Dec 03 2016 00:00:00 GMT+0200 (EET)
[17-02-10 13:25:14:150 EET] Thu Dec 01 00:00:00 GMT+02:00 2016
[17-02-10 13:25:14:151 EET] Sun Jan 01 00:00:00 GMT+02:00 2017
[17-02-10 13:25:14:151 EET] false
[17-02-10 13:25:14:152 EET] false
[17-02-10 13:25:14:152 EET] false
[17-02-10 13:25:14:152 EET] --------
[17-02-10 13:25:14:153 EET] --------
[17-02-10 13:25:14:153 EET] Sun Dec 04 2016 00:00:00 GMT+0200 (EET)
[17-02-10 13:25:14:154 EET] Thu Dec 01 00:00:00 GMT+02:00 2016
[17-02-10 13:25:14:154 EET] Sun Jan 01 00:00:00 GMT+02:00 2017
[17-02-10 13:25:14:155 EET] false
[17-02-10 13:25:14:155 EET] false
[17-02-10 13:25:14:156 EET] false
As you can see in the first log Dec 02 is greater than Dec 01 but I am getting false and so on ...
 
    