【问题标题】:Difference between today and an older date in months and years [duplicate]今天和更早的日期之间的差异(以月和年计)[重复]
【发布时间】:2020-04-01 15:05:16
【问题描述】:

好的..请注意..我是网络开发的新手..我只是想了解一切是如何工作的..这是不起作用的代码部分:

HTML

<div class="flags" id="CV"><h3>Experienta profesionala</h3>
<p><input type="date" id="angajare" value="2015-03-01" readonly hidden><span id="data_angajare"><script>dataAngajare()</script></span> - Prezent - <strong>Tehnician IT</strong></p>
<p><strong>KraftCom GmbH</strong>, Dorfstr. 17, 86869 Oberostendorf, Germania</p>
<p>Timp lucrat: <span id="timp_lucrat"><script>timpLucrat()</script></span></p>

函数 dataAngajare() 正常工作并显示。

function dataAngajare() {
const months = [
  'Januarie',
  'Februarie',
  'Martie',
  'Aprilie',
  'Mai',
  'Iunie',
  'Iulie',
  'August',
  'Septembrie',
  'Octombrie',
  'Noiembrie',
  'Decembrie'
];
var angajare = document.getElementById('angajare').value;
var dataAngajare = new Date(angajare);
var monthIndex = dataAngajare.getMonth();
var year = dataAngajare.getYear() + 1900;
var monthName = months[monthIndex];

document.getElementById('data_angajare').innerHTML = monthName + ' ' + year; 
}

函数 timpLucrat() 然而什么都不做。它没有显示任何内容,我不明白为什么。

funtion timpLucrat() {
var angajare = document.getElementById('angajare').value;
Date dataAngajare = new Date(angajare);
Date today = new Date();
var month_old = dataAngajare.getMonth();
var year_old = dataAngajare.getYear();
var current_month = today.getMonth();
var current_year = today.getYear();
if (current_month > month_old) {
    var month_diff = current_month - month_old;
    var year_diff = current_year - year_old;
} else if (current_month == month_old) {
    var month_diff = 0;
    var year_diff = current_year - year_old;
} else {
    var month_diff = current_month + 12 - month_old;
    var year_diff = current_year - year_old - 1;
}
document.getElementById('timp_lucrat').innerHTML = year_diff + ' ani si ' + month_diff + ' luni'; 
}

函数存储在 2 个不同的 .js 文件中,这些文件被导入到 header 元素中:

谁能发现问题所在?我真的不知道如何继续.. 谢谢你的时间!

Highlighted is the result of the funtion dataAngajare() and after "Timp lucrat: " I should have the result of the function timpLucrat() but nothing is shown.

【问题讨论】:

  • 只要thisgoogle 搜索就会返回很多结果
  • 我应该明白我所做的一切都是错的吗?我知道还有其他方法可以做到这一点,但我想知道我的方法是否可行,如果可以,我做错了什么?另外我不明白为什么其中一个功能起作用而另一个不起作用..我正在寻找有关我的解决方案的建议..而不是其他解决方案..谢谢
  • 不,但解决方法是反向思考。因此,您在代码中的最后一条语句不会向 html 附加任何内容。想想为什么。在它前面添加一个console.log(),检查变量等等。这将揭示你做错了什么。各种链接示例旨在向您展示您可能出错的地方,因此不要将其视为您没有做任何事情的标志。
  • 实际上写“功能”而不是“功能”有帮助!感谢您的帮助 :) 现在一切正常!

标签: javascript date


【解决方案1】:

实际上写“功能”而不是“功能”有帮助!感谢您的帮助 :) 现在一切正常!

【讨论】:

  • 如果是timpLucrat is not a function,您应该会看到控制台错误。你检查过控制台吗?
  • 我还没有这样做.. 正如我所说,我对此很陌生,仍然试图掌握一切.. 但这是一个非常好的提示.. 我会接受这个考虑到未来的错误。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 2013-11-29
  • 1970-01-01
相关资源
最近更新 更多