获取时间戳/ 1000 - Jquery datepicker

时间:2012-06-20 14:59:21

标签: jquery jquery-ui datepicker

我有一个日期范围选择器,每个日期选择器有两个字段:dat_start和date_end; 一切都很好,除了我将传递给服务器进行搜索的字段的时间戳;我知道JS Timestamp是以ms为单位,但我应该有/1000...而我找不到办法。这是我的代码:

<script>
$(function () {
    $("#data_inizio").datepicker({
        altField: '#mod_available_date_id_start',
        altFormat: '@',
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function (selectedDate) {
            $("#data_fine").datepicker("option", "minDate", selectedDate);
        }
    });
    $("#data_fine").datepicker({
        altField: '#mod_available_date_id_finish',
        altFormat: '@',
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function (selectedDate) {
            $("#data_inizio").datepicker("option", "maxDate", selectedDate);
        }
    });
});
</script>

感谢大家,抱歉我的英语不好!

1 个答案:

答案 0 :(得分:9)

获取选择器选择的字符串/日期并将其转换为日期:

var stringyDate = $("#data_inizio").val(); // mm/dd/yyyy
var dateyDate = new Date(stringyDate);

现在获取valueOf()(自1970年1月1日起返回毫秒)并除以1000以获得自[相同]以来的秒数。

var ms = dateyDate.valueOf();
var s = ms / 1000;

示例小提琴:http://jsfiddle.net/QpQ7U/

要在日期选择中执行此操作,请修改datepicker选项中的onSelect回调函数。

onSelect: function(selectedDate) {
    var v = $(this).val(),
        d = new Date(v);
    if (v.length > 0) {
        $('p#out').text(d.valueOf() + ' divided by 1000 is ' + (d.valueOf() / 1000));
    } else {
        $('p#out').text('No date selected');
    }
}

onSelect示例:http://jsfiddle.net/QpQ7U/1/

要将值存储在隐藏字段中,只需在onSelect

中指定字段即可
onSelect: function(selectedDate) {
    var d = new Date(selectedDate),
        s = parseSeconds(selectedDate);
    if (s > 0) {
        //display to user
        $('p#out_inizio').text(d.valueOf() + ' divided by 1000 is ' + s);
        //store in hidden field.
        $('input#out_inizio').val(s);
    } else {
        $('p#out_inizio').text('No date selected');
    }
    //set min date on other picker
    $("#data_fine").datepicker("option", "minDate", selectedDate);
}

隐藏字段的示例:http://jsfiddle.net/QpQ7U/2/

要格式化为日/月/年,请使用dateFormat选项:

$("#data_inizio").datepicker({
    altField: '#mod_available_date_id_start',
    altFormat: '@',
    dateFormat: 'dd/mm/yy',
    ...
});

示例小提琴:http://jsfiddle.net/QpQ7U/5/