如何从当前日期添加两天到隐藏输入的值 [英] How to Add Two Days from Current Date to the Value of a Hidden Input

查看:83
本文介绍了如何从当前日期添加两天到隐藏输入的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码,我想从当前日期添加两天到隐藏输入的值。如果我现在借钱,这会导致两天的等待期。如果我在星期五借钱会更好;星期六和星期日不计算,因此等待时间在四天后的星期一结束。

 < input type =hiddenname =due_dateid =sdmaxlength =10style = border:3px double #CCCCCC;需要/> 


解决方案

这段代码创建了一个引用这些日子的对象数组以及用于检索当前日期信息的Date对象oDate。如果星期几不是星期五,则建议用户等到星期五。



隐藏的输入due_date的值设置为距当前日期两天,除非该日期是星期五,在这种情况下,截止日期变为4天后,跳过周末,并加上通常的等待期2天。如果隐藏的输入是表单的一部分,那么一旦它被提交并且数据被验证,假设通过POST提交,可以在INSERT查询中使用变量$ _POST [due_date]将该值存储在数据库中,确保使用 mysqli_real_escape_string() PDO 和绑定参数。注意:我更改了HTML,因此隐藏输入的NAME和ID属性都设置为due_date。



var d = document; dg = 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; // defaultvar 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 =\\\
你应该等待星期五借用,即+ daysTillFriday +天后。;} if(currDay + 2!= arrDaysOfWeek [星期五]){daysTillFriday = arrDaysOfWeek [星期五] - currDay - 2; mess + =\\\
所以,最好不要在两天内,只要等到星期五,从现在开始的两天后,+ daysTillFriday +天。 } waitPeriod =(currDay == arrDaysOfWeek [Friday])? 4 //跳过坐。 &安培;太阳。加2:2; //通常等待periodoDate.setDate(md + waitPeriod); mess + =\\\
要知道发生日期是+ oDate; //美国日期样式... var date_parts = [mm,md,y]; mess + =\\\
Today是+ arrWkDayNames [currDay] +,+ date_parts.join(/); dg(display)。textContent = mess; dg(due_date).value = oDate; console.log(隐藏输入到期日期值:+ dg(due_date).value);

 < div id =display>< / div>< input type =hiddenname =due_dateid =due_datemaxlength =10style =border:3px double #CCCCCC; required />  


This is my code and I want to add two days from the current date to the value of a hidden input. If I borrow now, this results in a waiting period of two days. It will be better if I borrow on Friday; Saturdays and Sundays will not count so the waiting period ends on Monday, four days later.

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

解决方案

The code creates an array of objects referring to the days of the week as well as a Date object oDate used to retrieve the current date information. If the day of the week is not Friday, then user is advised to wait till Friday.

The hidden input "due_date" has its value set to two days from the current date unless that day is Friday in which case the due date becomes 4 days later, to skip the weekend and add the usual 2 days to the waiting period. If the hidden input were part of a form, once it is submitted, and the data validated, assuming submission by POST, one could use variable $_POST["due_date"] in an INSERT query to store that value in a database, making sure to use either mysqli_real_escape_string() or PDO and bound parameters.

Note: I altered the HTML so that both the NAME and ID attributes of the hidden input are both set to "due_date".

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

这篇关于如何从当前日期添加两天到隐藏输入的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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