ionic3 - momentjs 中的 isBefore 函数不起作用
问题描述
我尝试检查 h:mm 中的某个时间是否在另一个具有相同格式的时间之前。但是,控制台向我显示一个错误,说 isBefore 不是一个函数,或者它总是打印错误。我在 Ionic 3/Angular 中使用此代码。
如果我编写如下代码,控制台将打印错误。我尝试了不同的论点而不是小时。
var start_time = moment('20:00', 'h:mm').format('LT');
var last_time = moment('21:59', 'h:mm').format('LT');
var check_last = moment(start_time).isBefore(last_time, 'hour');
console.log(check_last);
如果我编码如下。如下链接所示。控制台给我的错误是
var start_time = moment('20:00', 'h:mm').format('LT');
var last_time = moment('21:59', 'h:mm').format('LT');
var check_last = start_time.isBefore(last_time, 'hour');
console.log(check_last);
在momentjs的官方网站上,我没有弄清楚如何比较两次。你能给我支持吗?
解决方案
Momentformat()
返回一个字符串,因此您不能isBefore
在 time.format('hh:mm') 之类的东西上使用,这就是您得到 isBefore 不是函数的原因。
同样根据文档本身,moment().isBefore() 具有未定义的行为,不应使用!如果代码运行速度很快,则初始创建的时刻将与在 isBefore 中创建的时刻相同以执行检查,因此结果将为 false
尝试不格式化以获得所需的输出
var start_time = moment("20:00", "h:mm");
var last_time = moment("21:59", "h:mm");
var check_last = moment(start_time).isBefore(last_time, "hour");
console.log(check_last);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
推荐阅读
- java - Java对新数组中的索引进行排序
- npm - 我的 webpack babel 加载器没有编译我的 javascript 代码
- jsonschema - 如何验证包含 MIXED 类型对象的 json 模式数组?
- regex - 正则表达式替换 - 删除不匹配的值
- git - 在几个 git repos 之间同步
- android - 如何在android中播放vimeo视频。我尝试过使用 webview。有没有其他方法可以播放 vimeo 视频?
- java - 如何在 Java 中的整数列表中添加列表元素
- javascript - 内容可编辑在刷新时丢失其选项卡/新行
- ios - 获取 ios 故事板 webView 应用程序以在安全区域呈现
- python-3.x - 有没有办法在 Python3 中将列表分组为子列表?