Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在给定日期前加两个小时_Javascript_Jquery_Date_Datetime - Fatal编程技术网

Javascript 在给定日期前加两个小时

Javascript 在给定日期前加两个小时,javascript,jquery,date,datetime,Javascript,Jquery,Date,Datetime,下面的代码用于获取日期值,然后向其添加两个小时。我真的很想知道如何给出一个条件,在早上08:30到晚上18:30之间加上两个小时,并跳过这两天(周六、周日) 例如:如果给定的日期是星期二的17:30,那么它遵循的规则是(星期二的17:30)+2=09:30(第二天的星期三),如果给定的日期是星期五的17:00,那么如果我们跳过周末的09:00(星期一的跳过周末),等等 var now=newdate(Date.parse($(“.x-form-hidden.x-form-field:eq(0)”

下面的代码用于获取日期值,然后向其添加两个小时。我真的很想知道如何给出一个条件,在早上08:30到晚上18:30之间加上两个小时,并跳过这两天(周六、周日)

例如:如果给定的日期是星期二的17:30,那么它遵循的规则是(星期二的17:30)+2=09:30(第二天的星期三),如果给定的日期是星期五的17:00,那么如果我们跳过周末的09:00(星期一的跳过周末),等等

var now=newdate(Date.parse($(“.x-form-hidden.x-form-field:eq(0)”).val());
now.setHours(now.getHours()+2);
var dayVar=“”;
if(now.getDate()<10){
dayVar=0+“”+now.getDate()
}否则{
dayVar=now.getDate();
}
变量日期字符串=
现在。getFullYear()+“-”+
(now.getMonth()+1)+“-”+
dayVar+“”+
now.getHours()+“:“+now.getMinutes()+”:0“+now.getSeconds();
$(“.x-form-hidden.x-form-field:eq(1)”).attr('value',dateString);
您的时间范围表示每周5天每天10小时,因此很容易将其映射为50小时的连续块。考虑到单位和十,就可以进行转换

以下示例获取2月1日星期五17:15的日期,该日期返回2月4日星期一9:15。
addTwoHours(新日期(2013,1,1,17,15));

您的时间范围表示每周5天每天10小时,因此很容易将其映射为50小时的连续块。考虑到单位和十,就可以进行转换


以下示例获取2月1日星期五17:15的日期,该日期返回2月4日星期一9:15。
addTwoHours(新日期(2013,1,1,17,15))英语不是我的第一语言,但你的意思是两个小时吗?英语不是我的第一语言,但你的意思是两个小时吗?我可以知道如何在PHP中使用这个函数吗
var now = new Date(Date.parse($(".x-form-hidden.x-form-field :eq(0)").val()));

now.setHours(now.getHours() + 2);

var dayVar = "";

if (now.getDate() < 10) {
    dayVar = 0 + "" + now.getDate()
} else {
    dayVar = now.getDate();
}

var dateString = 
    now.getFullYear() + "-" + 
    (now.getMonth() + 1) + "-" + 
    dayVar + " " + 
    now.getHours() + ":" + now.getMinutes() + ":0" + now.getSeconds();

$(".x-form-hidden.x-form-field :eq(1)").attr('value', dateString);
function addTwoHours(date) {
    //date to decimal
    var day = date.getDay() - 1;
    var hour = date.getHours() - 8;
    var decimal = day * 10 + hour;

    //add two hours
    decimal += 2;

    //decimal to date
    var newDay = Math.floor(decimal / 10);
    var nextDay = newDay - day == 1;
    var weekEnd = newDay % 5 == 0;
    var newHour = (decimal % 10) + 8;
    var newDate = new Date(date.getTime() + (nextDay?24:0) * (weekEnd?3:1) * 60 * 60 * 1000);
    newDate.setHours(newHour);
    return  newDate;
}