JS:
$(function() {
var jobDateText = $(".job-date").html()
, jobDate = new Date(jobDateText)
, today = new Date()
, thirtyDaysInMS = 30 * 24 * 60 * 60 * 1000
, differenceInMS = Math.abs(today - jobDate)
, differenceInDays = Math.floor(differenceInMS/1000/60/60/24);
if (differenceInMS > thirtyDaysInMS) $(".message").show();
$("span.daysOld").html(differenceInDays);
});
HTML:
<span class="job-date">1-20-2013</span>
<div class="message">This job is <span class="daysOld"></span> days old, and it may no longer be available</div>
CSS:
.message {
display:none;
}
AngularJS是一个非常好的替代的jQuery像这样的东西。所有你必须在AngularJS要做的就是设置基于日期数学控制器作用域的变量称为像$scope.stale = true
和$scope.daysOld
,然后在你的HTML只是
<div class="message" ng-show="stale">This job is {{daysOld}} days old it may no longer be available</div>
tjb1982谢谢!像一个魅力工作,并感谢有关AngularJS的说明。我听说过它,但还没有仔细看过它。我刚刚开始使用JavaScript,但仍然吮吸它。你知道有什么好的资源可以开始使用基础知识吗?到目前为止,我发现的大部分内容真的很快。再次感谢你的帮助! – 2013-03-03 18:39:05
我不知道哪一个来源最适合你。 JavaScript具有很多表现力,学习所有错综复杂的事情需要很多。像其他任何事情一样,不幸的是,你只需要花时间。当您通过Google搜索解决个人问题时,您会看到奇怪而有趣的前瞻性解决方案,它会教您什么是可能的。我上面的例子是为了简单地解决问题,但如果你看看这里的其他答案,你会发现最终他们是更好的解决方案。例如。用'getDaysOld(date)'抽象日期数字为 – tjb1982 2013-03-06 18:04:13
(cont。)显然是重用此功能的好方法,但我认为,对于初学者来说,使用的特定表达式@elclanrs有点不透明。 '|'字符是[按位或](http://stackoverflow.com/questions/6194950/what-does-the-single-pipe-do-in-javascript),他在科学记数法中使用了一天milleseconds,但它的工作原理和它的优雅。 @Valera也是正确的,你不应该从这样的演示中获取数据,而是作为一个属性或隐藏的输入等,因为你希望能够稍后改变格式。 – tjb1982 2013-03-06 18:11:58