Comparing time with MomentJS
10,096
To use ==
or <
or >
you need to convert the moment to a number. To do that use .valueOf()
. For example:
today.valueOf() < moment('03:00', 'hh:mm').valueOf()
However, moment.js also provides methods that are more readable:
today.isBefore(moment('03:00', 'hh:mm'))
You can use .isBefore()
, .isAfter()
, .isSame()
, .isSameOrBefore()
etc. Read the documentation for more info: http://momentjs.com/docs/#/query/
Author by
YVS1102
Updated on June 08, 2022Comments
-
YVS1102 almost 2 years
I'm trying to compare a time with momentJS. Here is My script
$( document ).ready(function() { var today =moment(); console.log(today.format("hh:mm")); if((today.format('D') == (moment().day("Sunday").format('D')) || (today.format('D') == moment().day('Saturday').format('D')))) { $('.kompensasi').val("100,000"); $('.chk').hide(); } else{ if((today.format("hh:mm") > moment('00:00', 'hh:mm')) && (today.format("hh:mm") < moment('03:00', 'hh:mm'))) { $('.kompensasi').val("30,000"); $('.cekbok').val(''); }else{ $('.cekbok').val('Dapet RO 1'); $('.kompensasi').val("0"); } } });
and here is my form
<div class="col-sm-7"> Kompensasi : <input name="dapet" type="text" readonly class="kompensasi" /> </div> </div> <div class="form-group chk"> <label class="col-sm-3 control-label">Ro</label> <div class="col-sm-7"> <input type="text" class='cekbok' name='rostatus' /> </div> </div>
from
console.log(today.format("hh:mm"))
i get this resullt01:44
.With my script above i always go to the
else
, so is there any way to fix it ?Here is my fiddle https://jsfiddle.net/s9wfh9ye/33/
My Upated Question
var today =moment(); var after = moment(today.format("hh:mm")).isAfter(moment('00:00', "hh:mm")); var before = moment(today.format("hh:mm")).isBefore(moment('03:00', "hh:mm")); today.format('hh:mm').valueOf() -->02:17 moment('00:00', 'hh:mm').valueOf() --> 1472058000000 moment('03:00', 'hh:mm').valueOf() -->1472068800000 console.log(after); // false console.log(before); // false