javascript - 如何计算 Javascript 与 HTML 周表的周差?

标签 javascript html forms date-difference

我正在寻找一种根据另一个周表单元素的输入来填充周表单元素的方法。我对 Javascript 还很陌生。

基本上我需要得到 c1 和 c2 形式之间的周差。 然后以相同的周差自动填充 d1 和 d2,但 d1 在 c2 之后一周开始。

示例:

c1 =“2018-W01”

c2 =“2018-W05”

应将 d1 和 d2 值设置为:

d1 =“2018-W06”

d2 =“2018-W10”

    <input type="week" id="c1">
    <input type="week" id="c2">
    <input type="week" id="d1" readonly>
    <input type="week" id="d2" readonly>

<script>
function myFunction() {
    var d1 = document.getElementById("c1").value;
    var d2 = document.getElementById("c2").value;
    var year = d1.substring(0,4); //2018
    var day1 = d1.substring(6,);  //01
    var day2 = d2.substring(6,);  //05

    var difference = day2 - day1; //5

    document.getElementById("d1").value = d1 + difference; // ?
    document.getElementById("d2").value = d2 + difference;
</script> 

这段代码显然不起作用,但显示了我的想法。 这确实会带来两年之间日期重叠的问题。 感谢您的帮助!

最佳答案

试试这个..

function myFunction(d1, d2) {

var year1 = parseInt(d1.substring(0, 4)); //2018
var year2 = parseInt(d2.substring(0, 4));
var yearDiff = Math.abs(year1 - year2);
var weeksInYears = 52 * yearDiff;

var day1 = parseInt(d1.substring(6, ));  //01
var day2 = parseInt(d2.substring(6, ));  //05

var difference = Math.abs(weeksInYears - (day2 - day1));  // handled dates with different years
var week1 = day2 + 1;
var week2 = week1 + difference;
week1 = ((week1 < 10 ? '0' : '') + week1);
week2 = ((week2 < 10 ? '0' : '') + week2)
var res = year1 + "-" + "W" + (week1); // ?
var res1 = year2 + "-" + "W" + (week2);
console.log(res, res1);}

关于javascript - 如何计算 Javascript 与 HTML 周表的周差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52745374/

相关文章:

delphi - 注册自定义表单,以便我可以从多个项目中继承它,而无需将表单复制到 Object Repository 文件夹

c# - 在 Visual Studio 中使用 JavaScript

javascript - 捕获 SyntaxError 并运行替代函数

javascript - 如何做一个 GWT-Wrapper

javascript - 使用 JavaScript 从 XML 文件搜索并输出数据

javascript - Chrome 移动摄像头 100% 屏幕尺寸?

javascript - onChange 将动态选择返回 null

javascript - JSON后的回调

javascript - dc.js:如何在单折线图的两侧显示y轴?

css - 在列表中垂直居中标签和输入