【问题标题】:Subtracting values to moment.js using input[type="range"]使用 input[type="range"] 将值减去 moment.js
【发布时间】:2014-06-05 15:25:21
【问题描述】:

我想使用 input[type="range"] 将日期减去 moment.js,但它无法正常工作。这是我的代码:

JS

<input type="range" min="1" max="30">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="moment.min.js"></script>
<script type="text/javascript">
<script>
var now = moment().format('MMM DD, YYYY - hh:mm a');

$('input[type="range"]').on('change',function(){

    var timeValue = $(this).val();

    now = moment().subtract(timeValue,'minutes').format("MMM DD, YYYY - hh:mm a");
    console.log(timeValue);
    console.log(now);

});
</script>

【问题讨论】:

    标签: javascript jquery html input momentjs


    【解决方案1】:

    你的问题是你的参数是错误的:

    var now = moment().subtract('minutes', timeValue).format("MMM DD, YYYY - hh:mm a");
    

    'minutes' 是减法中的第一个参数,然后是时间值。

    jsfiddle link

    但 Kalley 的回答也解决了这个问题。

    【讨论】:

    • moment.js 的加法和减法函数根据文档从 2.0.0 版开始接受反向语法,因此解决问题的方法是 Kalley 的答案。我不知道范围将字符串作为值。从现在开始一定要注意它。
    【解决方案2】:

    您需要将输入中的值强制转换为整数,因为它是一个字符串。

    var timeValue = parseInt($(this).val(), 10);
    

    FIDDLE

    【讨论】:

    • 我明白了。这绝对是我正在寻找的答案。我一定会将文本输入中的所有值解析为整数。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    相关资源
    最近更新 更多