2010-03-01 135 views
0

我正在使用自定义日期范围的jQuery日期选择器(http://keith-wood.name/datepick.html)。我的问题是,我需要用户的日期输出为可读格式,例如dd/mm/yyyy,但是接下来将该日期传递给搜索表单,如yyyymmdd。传递格式化的日期与jQuery的日期选择器

$(function() { 

$('#startDatepicker,#endDatepicker').datepick({onSelect: customRange, 
    showOn: 'both', buttonImageOnly: true, buttonImage: '/images/icons/calendar.gif', dateFormat: 'dd/mm/yy'}); 

function customRange(dateStr, date) { 
    if (this.id == 'startDatepicker') { 
     $('#endDatepicker').datepick('option', 'minDate', date); 
    } 
    else { 
     $('#startDatepicker').datepick('option', 'maxDate', date); 
    } 
} 

}); 

function getDateRange() { 
    var fromDate = document.advancedsearch.startDatepicker.value; 
    var toDate = document.advancedsearch.endDatepicker.value; 
    var selectedDateRange = fromDate + "," + toDate; 
    document.advancedsearch.searchdaterange.value += selectedDateRange; 
}     

基本上我服用startDatepicker和endDatepicker的值,将它们组合起来,然后将其添加为我的搜索表单上searchdaterange字段的值。日期范围必须是yyyymmdd。有谁知道我可以如何格式化这些值传入我的搜索表单?

+0

子串和级联? – alex 2010-03-01 04:20:46

回答

1

为什么不修改您的日期选择器提供使他们所需格式之前提交表单数据的日期字符串?

function getDateRange() { 
    var fromDate = document.advancedsearch.startDatepicker.value; 
    var toDate = document.advancedsearch.endDatepicker.value; 
    var selectedDateRange = formatDateRange(fromDate, toDate); 
    document.advancedsearch.searchdaterange.value += selectedDateRange; 
} 


function formatDateRange(fromDate, toDate) { 
    var fromDateArray = fromDate.split("/") 
    var toDateArray = toDate.split("/") 
    var selectedDateRange = fromDateArray[2] + fromDateArray[0] + fromDateArray[1]; 
    selectedDateRange += "," + toDateArray[2] + toDateArray[0] + toDateArray[1]; 
    return selectedDateRange; 
} 
+0

辉煌!谢谢! – Choy 2010-03-01 07:38:08

0

如果可以的话,尽量使用jQuery UI的DatePicker:http://jqueryui.com/demos/datepicker/

+0

感谢您的参考。我查看了文档,看起来它有单独的显示格式变量和解析来传递完美的字符串。当我获得更多时间时,我会考虑切换到此插件,因为它看起来更漂亮。 – Choy 2010-03-01 07:40:23