获取时间戳记/ 1000 - Jquery datepicker [英] Get Timestamp / 1000 - Jquery datepicker

查看:380
本文介绍了获取时间戳记/ 1000 - Jquery datepicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个日期范围选择器,每个日期选择器有2个字段: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 ,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>

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

解决方案

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

 code> 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/



要在日期选择上发生这种情况,请修改 onSelect datepicker选项中的回调函数。

  onSelect:function(selectedDate){
var v = $(this).val(),
d = new Date(v);
if(v.length> 0){
$('p#out')。文本(d.valueOf()+'除以1000是'+(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){
//显示给用户
$('p#out_inizio')。文本(d.valueOf()+'除以1000是'+ s );
//存储在隐藏字段中。
$('input#out_inizio')。val(s);
} else {
$('p#out_inizio')。text('No date selected');
}
//在其他选择器上设置最小日期
$(#data_fine)。datepicker(选项,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/


i've got a date-range picker, with 2 field each date picker: dat_start and date_end; everything's fine except the Timestamp of the field I will pass to server to do the search; I know JS Timestamp is in ms, but I should have it /1000...and I can't find the way to do. Here's my code:

<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>

Thanks to everyone, and sorry for my bad english!

解决方案

Get the string/date selected by the picker and cast it to a date:

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

Now get the valueOf() (which returns milliseconds since January 1, 1970) and divide by 1000 to get the number of seconds since [same].

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

Example fiddle: http://jsfiddle.net/QpQ7U/

To have this happen on date selection, modify the onSelect callback function in the datepicker options.

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');
    }
}

Example fiddle with onSelect: http://jsfiddle.net/QpQ7U/1/

To store the value in a hidden field, simply specify the field in the 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);
}

Example fiddle with hidden fields: http://jsfiddle.net/QpQ7U/2/

To format as day/month/year, use the dateFormat option:

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

Example fiddle: http://jsfiddle.net/QpQ7U/5/

这篇关于获取时间戳记/ 1000 - Jquery datepicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆