Javascript 如何基于当前日期显示两周期间的第一天?

Javascript 如何基于当前日期显示两周期间的第一天?,javascript,date,Javascript,Date,我需要做的是根据当前日期,根据今天的日期确定两周支付期的第一天。发薪期从星期六开始。例如,今天(12/30)属于12/20的支付期。我所需要做的就是将这些信息显示为2014年12月20日。有什么建议吗 谢谢使用计算两个日期之间差异的方法,您可以执行以下操作: 函数计算周期开始(targetDate){ //一年中的第一天 var day1=新日期(targetDate.getFullYear(),0,1); //提前到第一个星期六 day1.setDate(7-day1.getDay());

我需要做的是根据当前日期,根据今天的日期确定两周支付期的第一天。发薪期从星期六开始。例如,今天(12/30)属于12/20的支付期。我所需要做的就是将这些信息显示为2014年12月20日。有什么建议吗

谢谢

使用计算两个日期之间差异的方法,您可以执行以下操作:

函数计算周期开始(targetDate){
//一年中的第一天
var day1=新日期(targetDate.getFullYear(),0,1);
//提前到第一个星期六
day1.setDate(7-day1.getDay());
//以毫秒为单位获得2周
两周var=1000*60*60*24*14;
//以毫秒为单位计算差值
var difference_ms=targetDate.getTime()-day1.getTime();
//改回两周
var numFortnightsD=差异μms/两周;
var numFortnights=Math.ceil(numFortnightsD);
//如果在星期六处理,那么新的周期
如果(numfortnight SD==numfortnight)
{
numFortnights++;
}
//加上两周的天数
//但取一个来获取当前期间
day1.setDate(day1.getDate()+(numFortnights-1)*14);
返回第1天;
}
//例子
console.log('----');
//今天
var today=新日期();
console.log(今天+'=>'+calculatePeriodStart(今天)+'(今天)';
//新时期午夜前
var today=新日期(2014年11月19日23日59日59日);
console.log(今天+'=>'+calculatePeriodStart(今天)+'(新时期午夜前)');
//就在新时期的午夜
今天=新日期(2014年11月20日);
console.log(今天+'=>'+calculatePeriodStart(今天)+'(正好是新时期的午夜)';
//新时期午夜过后
今天=新日期(2014、11、20、0、0、1)
console.log(今天+'=>'+calculatePeriodStart(今天)+'(新时期午夜之后)';
//就在明年新时期的午夜之后
今天=新日期(2015、11、19、0、0、1);
console.log(今天+'=>'+calculatePeriodStart(今天)+'(明年新时期的午夜之后)');
//早于当年第一期
今天=新日期(2014年0月2日);

console.log(今天+'=>'+calculatePeriodStart(今天)+'(早于一年中的第一个期间)'您可以添加更多关于您在什么语言/环境下执行此操作的详细信息吗?标签同时提到ASP和Javascript。@DaveChallis我不确定我是如何在标签中得到ASP classic的。我想用JavaScript来做这件事,所以我删除了ASP标记。周期从什么时候开始,例如,第一个支付周期从一年的第一个星期六开始吗?@Rhumborl是的,第一个支付周期从一年的第一个星期六开始。所以今年的第一个发薪期是1/3/15。这很有效。我不得不稍微调整一下,因为实际上我对工资期的工作方式有点不了解。非常感谢。