使用php unix时间戳和moment.js

时间:2014-07-08 20:41:25

标签: momentjs

似乎无法使用moment.js使用unix时间戳...

在这种情况下,

date_create等于我的php unix时间戳,我想将它用作startDate,minDate和其他一些地方......我没有收到错误,但它显示为'12月31日, 1969 @ 7:00 pm'显然不正确。

我在这里做错了什么?目标是从给定的utc时间戳开始,将正确的日期/时间显示为计算机时间。

例如1401079499是05/26/14 @ 4:44:59 UTC,但这将显示为2014年5月26日12:44:59 am在我自己的计算机上是gmt -4

    var date_create = $('#dashboard-report-range #date-display').html(); //equals 1401079499

    //date range stuff
    $('#dashboard-report-range').daterangepicker({
        opens: 'left',
        startDate: moment.unix(date_create).startOf('day'),
        endDate: moment().endOf('day'),
        minDate: moment.unix(date_create).startOf('day'),
        maxDate: moment().endOf('day'),
        showDropdowns: false,
        showWeekNumbers: true,
        timePicker: true,
        timePickerIncrement: 1,
        timePicker12Hour: true,
        ranges: {
            'All': [moment.unix(date_create).startOf('day'), moment().endOf('day')],
            'Today': [moment().startOf('day'), moment().endOf('day')],
            'Yesterday': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],
            'Last 7 Days': [moment().subtract('days', 6).startOf('day'), moment().endOf('day')],
            'Last 30 Days': [moment().subtract('days', 29).startOf('day'), moment().endOf('day')],
            'This Month': [moment().startOf('month'), moment().endOf('month')],
            'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
        },
        buttonClasses: ['btn'],
        applyClass: 'btn-sm btn-success',
        cancelClass: 'btn-sm btn-default',
        format: 'MM/DD/YYYY',
        //format: 'MM-DD-YY',
        separator: ' to ',
        locale: {
            applyLabel: 'Apply',
            fromLabel: 'From',
            toLabel: 'To',
            customRangeLabel: 'Custom Range',
            daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
            monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
            firstDay: 1
        }
    },
    function (start, end) {
        $('#dashboard-report-range #date-display').html('<span class="ddate_start">' + start.format('MMMM D, YYYY [@] h:mm a') + '</span> &nbsp;<i class="fa fa-arrows-h"></i>&nbsp; <span class="ddate_end">' + end.format('MMMM D, YYYY [@] h:mm a') + '</span>');
        $('#dashboard-report-range #date-start').html( start.unix() );
        $('#dashboard-report-range #date-end').html( end.unix() );
        dt.draw();
    }
    );

    $('#dashboard-report-range #date-display').html('<span class="ddate_start">' + moment.unix(date_create).startOf('day').format('MMMM D, YYYY [@] h:mm a') + '</span> &nbsp;<i class="fa fa-arrows-h"></i>&nbsp; <span class="ddate_end">' + moment().endOf('day').format('MMMM D, YYYY [@] h:mm a') + '</span>');
    $('#dashboard-report-range').show();

};

编辑 - 解决方案:

我忘记更改ID我从...获取unix时间戳... $('#dashboard-report-range #date-create').html();随着更改,一切正常。

1 个答案:

答案 0 :(得分:2)

将时间戳乘以1000。 PHP以秒为单位返回时间戳,但JS将其理解为毫秒。