2017-06-30 74 views
0

我有一個帶兩個日期選擇器的表單。我使用JS來啓動datepicker,然後JS使用這些值來提交URL。提交時更改日期選擇器格式(JS)

我希望我的日期格式顯示給用戶作爲MM/DD/YY,但我需要的時間被添加到URL作爲YY-MD

這是我的形式,並且處理的JS形式:

<script type="text/javascript"> 
 
// Booking Mask Submission 
 
jQuery(function() { 
 
\t var form = jQuery('form#form1'); 
 
\t form.submit(function(e) { 
 
\t \t var checkin = form.find('input[name="date_from"]').val(); 
 
\t \t var nights = form.find('input[name="date_to"]').val(); 
 
\t \t var guests = form.find('select[name="person"]').val(); 
 
\t \t 
 
\t \t var bookingLink = "https://example.com" + checkin + "&depart=" + nights + "&adult=" + guests + "&?"; 
 
\t \t form.attr('action',bookingLink); 
 
\t }); 
 
}); 
 
</script>
<form class="book-form" method="post" id="form1" > \t 
 
<div class="container"> \t \t 
 
<span class="title">book a room</span> \t \t 
 
<div class="area"> \t \t \t 
 
<div class="col date-holder"> \t \t \t \t 
 
<div class="date"> \t <input type="text" name="date_from" class="from" placeholder="ARRIVAL"> \t \t \t \t </div> \t \t 
 
\t \t \t 
 
<div class="date"> \t <input type="text" name="date_to" placeholder="DEPARTRUE" class="to" > \t \t \t \t </div> \t 
 
\t \t </div> \t \t \t 
 
<div class="col"> \t \t \t \t <select class="person" name="person" placeholder="GUESTS"> \t \t \t \t \t <option>1</option> \t \t \t \t \t <option>2</option> \t \t \t \t \t <option>3</option> \t \t \t \t \t <option>4</option> \t \t \t \t \t <option>5</option> \t \t \t \t </select> \t \t \t </div> 
 
<div class="col"> \t <input type="submit" value="get rates" class="btn"> \t \t \t </div> \t \t </div> \t \t </div></form>

這裏是我的日期選擇器JS:

// datepicker 
 
function initDatepicker() { 
 
\t jQuery('.date-holder').each(function() { 
 
\t \t var holder = jQuery(this); 
 
\t \t var from = holder.find('input.from'); 
 
\t \t var to = holder.find('input.to'); 
 
\t \t from.datepicker({ 
 
\t \t \t dateFormat: 'mm-dd-yy', 
 
\t \t \t hiddenName: true, 
 
\t \t \t onClose: function(selectedDate) { 
 
\t \t \t \t to.datepicker('option', 'minDate', selectedDate); 
 
\t \t } 
 
\t \t }); 
 
\t \t to.datepicker({ 
 
\t \t \t dateFormat: 'yy-m-d', 
 
\t \t \t onClose: function(selectedDate) { 
 
\t \t \t \t from.datepicker('option', 'maxDate', selectedDate); 
 
\t \t \t } 
 
\t \t }); 
 
\t }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

另外,我也有代碼,使第一次約會後,設置爲當天第二個日期選擇器日曆汽車。

總結一下,我想輸入字段顯示MM/DD/YY,但轉換爲YY-M-d爲提交

回答

0

您可以創建一個函數來手動格式化日期爲您服務。例如,在您提交功能:

checkin = formatDate(checkin); 

function formatDate(myDate) { 
    var date = new Date(myDate); 
    var yearFormatted = date.getFullYear().toString().substr(-2); 
    var monthFormatted = date.getMonth() + 1; 
    var dayFormatted = date.getDate(); 

    var dateFormatted = yearFormatted + '-' + monthFormatted + '-' + dayFormatted; 

    return dateFormatted; 
} 
+0

如果我再補充一點,它打破了日期選擇器日曆,當你點擊框中的日曆不彈出 – dynamicad

+0

對不起,我不知道我理解。爲什麼會這樣做?利用日期的唯一價值是'bookingLink'嗎?這與日曆有什麼相互作用?你可以像以前一樣保留你的變量,只是做'var bookingLink =「https://example.com」+ formatDate(checkin)+「&depart =」+ formatDate(nights)+「&adult =」+ formatDate(guests) +「&?";' – Arman

+0

我在錯誤的地方添加了它,我讓日曆工作,但它將日期轉換爲url中的」aN-NaN-NaN「 – dynamicad