は(エレガントが、10用のスタータではない)、これらの線に沿って何かを試してみてください:
var highSeasonDateRange = "xx/xx/xxxx - xx/xx/xxxx"; //use this format
var lowSeasonDateRange = "xx/xx/xxxx - xx/xx/xxxx"; //use this format
var highSeasonCost = "xxxxx";
var lowSeasonCost = "xxxxx";
$(function(){
$('input.calendarDateSelect').on("change", function(){
var val = $(this).val();
checkSeasonRate(val, $(this).attr("type") == "date");
});
});
function checkSeasonRate(date, ISO8601){
var highSeasonDateArray = highSeasonDateRange.split(" - ");
var lowSeasonDateArray = lowSeasonDateRange.split(" - ");
if(dateRangeCheck(highSeasonDateArray[0], highSeasonDateArray[1], date, ISO8601) === true){
return highSeasonCost;
}else if(dateRangeCheck(lowSeasonDateArray[0], lowSeasonDateArray[1], date, ISO8601) === true){
return lowSeasonCost;
}else{
return "error"; //Error handler
}
}
function dateRangeCheck(from, to, check, ISO8601) {
var fDate,lDate,cDate;
var fromDateArray = from.split("/");
var toDateArray = to.split("/");
var checkDateArray;
if(ISO8601){
checkDateArray = check.split("-");
cDate = Date.UTC(checkDateArray[0], checkDateArray[1] - 1, checkDateArray[2]);
}else{
checkDateArray = check.split("/");
cDate = Date.UTC(checkDateArray[2], checkDateArray[1] - 1, checkDateArray[0]);
}
fDate = Date.UTC(fromDateArray[2], fromDateArray[1] - 1, fromDateArray[0]);
lDate = Date.UTC(toDateArray[2], toDateArray[1] - 1, toDateArray[0]);
if((cDate <= lDate && cDate >= fDate)) {
return true;
}
return false;
}
更新:
$(function(){
$('input.calendarDateSelect').on("change", function(){
var val = $(this).val();
var cost = checkSeasonRate(val, $(this).attr("type") == "date");
//Do something with cost
alert(cost);
});
});
ご質問は広すぎます。あなたはあなたが試したことを投稿できますか?あなたが失敗した可能性がありますか?そうすれば、少なくともあなたの側には何らかの努力が払われたはずです。 –
シーズンの高低シーズンを決定する一連のJavaScript変数を割り当てる必要があります。その後、変更イベントを使用してカレンダー入力を取得し、適用されるコストを見つけます。 –