2017-08-19 5 views
0

これは私のコードで、現在の日付から非表示入力の値に2日を加算したいとします。今すぐ借りれば、2日間の待機期間があります。私が金曜日に借りればそれは良いでしょう。土曜日と日曜日はカウントされないので、待機期間は4日後の月曜日に終了します。あなたはJavaScriptを使用することができます現在の日付から2日を隠し入力の値に追加する方法

<input type="hidden" name="due_date" id="sd" maxlength="10" style="border: 3px double #CCCCCC;" required/> 
+0

あなたはJavascriptを...または使用しているバックエンドの言語を使用してそれを行うことができます。 – Prateek

答えて

0

このコードは、現在の日付情報を取得するために使用されるDateオブジェクトoDateと同様に、曜日を参照するオブジェクトの配列を作成します。曜日が金曜日でない場合は、金曜日まで待つようにしてください。

隠し入力 "due_date"の値は、その日が金曜日である場合を除いて現在の日付から2日に設定されます。この場合、期日は4日後になり、週末をスキップして通常の2日間を待機に追加します期間。隠された入力がフォームの一部であった場合、それが提出され、データが検証され、POSTによって提出されたと仮定すると、INSERT問合せで変数$ _POST ["due_date"]を使用してその値をデータベースに格納し、 mysqli_real_escape_string()またはPDOとバインドされたパラメータのいずれかを使用します。

注:非表示入力のNAME属性とID属性の両方が「due_date」になるようにHTMLを変更しました。

var d = document; 
 
d.g = d.getElementById; 
 

 
var arrDaysOfWeek = {"Sunday":0,"Monday":1,"Tuesday":2,"Wednesday":3,"Thursday":4,"Friday":5,"Saturday":6}; 
 

 
var arrWkDayNames = Object.keys(arrDaysOfWeek); 
 

 
var oDate = new Date(); 
 
var currDay = oDate.getDay(); 
 

 
var md = oDate.getDate(); 
 
var mm = oDate.getMonth() + 1; 
 
var y = oDate.getFullYear(); 
 

 

 
var waitPeriod = 2; // default 
 

 
var daysTillFriday = (currDay == 0)? arrDaysOfWeek["Friday"] 
 
: arrDaysOfWeek["Friday"] - currDay; 
 

 
if (currDay == arrDaysOfWeek["Saturday"]) { 
 
    daysTillFriday = arrWeekDayNames.length + arrDaysOfWeek["Friday"] - currDay; 
 
} 
 

 
var mess = ""; 
 

 
if (currDay != arrDaysOfWeek["Friday"]) { 
 
    mess = "\nYou should wait to borrow on Friday, i.e. " + daysTillFriday + " days from today."; 
 
} 
 

 
if(currDay + 2 != arrDaysOfWeek["Friday"]) { 
 
daysTillFriday = arrDaysOfWeek["Friday"] - currDay - 2; 
 
    
 
    mess += "\nSo, best not even in two days. Just wait till Friday which will be in " + daysTillFriday + " days from two days from now."; 
 
    
 
} 
 

 
waitPeriod = (currDay == arrDaysOfWeek["Friday"]) 
 
? 4 //skip sat. & sun. plus 2 
 
: 2; // usual wait period 
 

 

 
oDate.setDate(md + waitPeriod); 
 

 

 
mess += "\nTo proceed know that the happening date is " + oDate; 
 

 
//USA date style ... 
 
var date_parts = [ mm, md, y ]; 
 

 
mess += "\nToday is " + arrWkDayNames[ currDay ] + ", " + date_parts.join("/"); 
 

 
d.g("display").textContent = mess; 
 

 
d.g("due_date").value = oDate; 
 
console.log("Hidden input due date value: " + d.g("due_date").value);
<div id="display"></div> 
 

 
<input type="hidden" name="due_date" id="due_date" maxlength="10" style="border: 3px double #CCCCCC;" required/>

+0

どのように値を取得し、それをデータベースに挿入できますか?私のデータベースには、 "due_date"という名前は表示されないので、私は借用を押すとデータベースに保存する必要がありますが、あなたが書き込んだ値を渡す方法はわかりません。私の友人 – Liza

+0

どのようにJavaScriptを使用して、PHPに渡すか分からない私のためにそれを行うことはできますか?申し訳ありませんが私の要求のために私はちょうどwebstorageで何をすべきか分からないでしょう – Liza

0

、一切のjQueryは必要ありません:

var someDate = new Date(); 
var numberOfDaysToAdd = 2; 
someDate.setDate(someDate.getDate() + numberOfDaysToAdd); 

フォーマットをdd/mm/yyyyのために:

var dd = someDate.getDate(); 
var mm = someDate.getMonth() + 1; 
var y = someDate.getFullYear(); 

var someFormattedDate = dd + '/'+ mm + '/'+ y; 

答えをから - How to add number of days to today's date?

君は

echo date('Y-m-d', strtotime("+2 days")); 

回答PHPでそれを行うことができます - あなたは土曜日と日曜日のプラス2日間をスキップする金曜日のために2日とを追加するためにJavaScriptを使用して(5)4日間を追加することができますAdd number of days to a date

1

var currentDate = new Date(); 
 

 
//Checking If Current day is Friday 
 

 
if(currentDate.getDay() == 5) { 
 
    var numberOfDaysToAdd = 4; //Adding 4 to skip sat. & sun. if Friday 
 
} else { 
 
    var numberOfDaysToAdd = 2; //Adding 2 days if not Friday 
 
} 
 
currentDate.setDate(currentDate.getDate() + numberOfDaysToAdd); 
 

 
//Formatting to dd/mm/yyyy : 
 

 
var dd = currentDate.getDate(); 
 
var mm = currentDate.getMonth() + 1; 
 
var y = currentDate.getFullYear(); 
 

 
var someFormattedDate = dd + '/'+ mm + '/'+ y; 
 

 
// Displaying Fromatted Date 
 

 
document.getElementById("display").innerHTML = someFormattedDate;
<div id="display"></div>

土曜日と日曜日は何も借りていないとされています。

+0

私の入力には何が表示されますか?私はすでにdiv id = "display"を入れて、入力にhiddenがcurrentDateの値を取得しないのですが、どうすればいいですか?ありがとう、私の友人 – Liza

関連する問題