我正在尝试将时间与 momentJS 进行比较。这是我的脚本
$( 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");
}
}
});
这是我的表格
<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>
从
console.log(today.format("hh:mm"))
我得到这个结果 01:44
。使用上面的脚本,我总是转到
else
,那么有什么方法可以解决它吗?这是我的 fiddle https://jsfiddle.net/s9wfh9ye/33/
我更新的问题
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
最佳答案
要使用 ==
或 <
或 >
,您需要将时刻转换为数字。要做到这一点,请使用 .valueOf()
。例如:
today.valueOf() < moment('03:00', 'hh:mm').valueOf()
然而,moment.js 也提供了更具可读性的方法:
today.isBefore(moment('03:00', 'hh:mm'))
您可以使用
.isBefore()
、 .isAfter()
、 .isSame()
、 .isSameOrBefore()
等。阅读文档了解更多信息:http://momentjs.com/docs/#/query/关于javascript - 与 MomentJS 比较时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39157618/