【问题标题】:how to convert, date change event into particular format如何将日期更改事件转换为特定格式
【发布时间】:2017-05-22 07:03:17
【问题描述】:

我的网站中有日期,我正在使用 daterangepicker 和 moment js 使用日期。现在我对所有这些事情都很陌生,其中一个变量设置日期是

moment().subtract(29, 'days') 

console.log 结果为1492930351644moment() 的结果与 1495435951644 类似。

现在由我想要的用户手动更改,以更新此值,但我不知道如何使用它。我使用了如下的 jQuery 事件

$('#dateRange').on('apply.daterangepicker', function(ev, picker) {
    var startDate_1 = moment.utc(startDateCal).format('LL');
    var endDate_1 = moment.utc(endDateCal).format('LL');

    dates.setData('startDateCal',startDate_1);  
    dates.setData('endDateCal',endDate_1); 

    console.log(" changed start date "+dates.getData('startDateCal'));
    console.log(" changed end date "+dates.getData('endDateCal'));

});

因此,当我从查看日历中更改并选择今天的日期时,我将进入上述更改事件,但我的输出将是

 changed start date May 21, 2017
 changed end date May 22, 2017

在这里,我想要一个类似于1492930351644 的输出或日​​期格式,如moment().subtract(29, 'days') 所示,但我不知道如何才能实现这一点。有什么帮助吗?

【问题讨论】:

  • 尝试在dates.setData之后添加$scope.$apply();
  • 所以据我了解,您想要 Unix Timestamp 格式的日期?
  • @ABiswas - 不,我不是在寻找 unix 日期,而是在上面我不知道的格式,我怎样才能使用 momentjs。

标签: javascript jquery date momentjs daterangepicker


【解决方案1】:

试试这个改变 .format('LL').format('x')

var startDate_1 = moment.utc(startDateCal).format('x');
var endDate_1 = moment.utc(endDateCal).format('x');

【讨论】:

    【解决方案2】:

    您希望将 unix ms 时间戳格式保存为 data- 属性。你做得对,你只需要像这样使用format date 函数:

    moment.utc(startDateCal).format('x') // get the unix timestamp format
    

    或者当你读回数据时,你应该从中创建一个矩对象并使用valueOf来获取数字格式:

    moment(dates.getData('startDateCal')).valueOf()
    

    您当前使用的似乎是固定的startDateCalendDateCal。我建议您在回调函数中使用 picker 属性从选择器本身获取实际日期,如下所示:

    $('#dateRange').on('apply.daterangepicker', function(ev, picker) {
        var startDate_1 = picker.startDate.format('x');
        var endDate_1 = picker.endDate.format('x');
    
        dates.setData('startDateCal',startDate_1);
        dates.setData('endDateCal',endDate_1);
    
        console.log(" changed start date "+dates.getData('startDateCal'));
        console.log(" changed end date "+dates.getData('endDateCal'));
    
    });
    

    【讨论】:

    • 但是我可以让减去部分动态化吗 --- 即我希望能够检查设置的日期差异以便能够从我的任何控制器进行更新?!
    • 出现错误未捕获的类型错误:dates.getData(...).getTime 不是函数
    • 您的答案似乎在附近但不正确,因为如果我选择今天或上周,我选择的所有日期1495305000000 & 1493576999999 as start & end 的值都相同。
    • 我已经更新了答案,看来您使用的是固定的 startDateCal,您应该使用回调函数中的选择器属性本身。
    • 非常感谢。你拯救了我的一天,阿门!
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多