1

我有一个日期范围选择器,每个日期选择器有 2 个字段:dat_start 和 date_end;一切都很好,除了我将传递给服务器进行搜索的字段的时间戳;我知道 JS Timestamp 以毫秒为单位,但我应该拥有它/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>

谢谢大家,对不起我的英语不好!

4

1 回答 1

10

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

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

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

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

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

要在选择日期时发生这种情况,请修改日期选择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/

于 2012-06-20T15:41:56.357 回答