我只想与Angular Js建立一个计算日期的简短网页。 moment.js来自页面:http://momentjs.com/
这是当前的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Date Calculator</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"> </script>
<script src="moment.js"></script>
</head>
<body>
<script>
function personController($scope) {
moment();
$scope.year = moment().get('year');
$scope.month = moment().get('month');
$scope.day = moment().get('day');
}
</script>
<h1>Date Calculator</h1>
<div ng-app="" ng-controller="personController">
<form action="datecalc.html">
<h2>Startdate</h2>
<table>
<tr><td> <p>Day: <br><input name="day" type="number" size="20" maxlength="20" min="1" max="31" ng-model="day"></p></td>
<td> <p>Month: <br><input name="month" type="number" size="20" maxlength="20" min="1" max="12" ng-model="month"></p></td>
<td> <p>Year: <br><input name="year" type="number" size="20" maxlength="20" min="1980" max="4000" ng-model="year"></p></td>
</tr>
<tr>
<td>
Add/Substract
</td>
<td>Days: </td>
<td>Months: </td>
<td>years: </td>
</tr>
<tr>
<td> <select id = "todo">
<option value = "1">add</option>
<option value = "2">substract</option>
</select>
</td>
<td><input name="days" type="number" size="10" maxlength="100" ng-model="days"></td>
<td><input name="months" type="number" size="10" maxlength="100" ng-model="months"></td>
<td><input name="years" type="number" size="10" maxlength="100" ng-model="years"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
加载页面时,字段日,月和年应设置为当前日期。
知道为什么这不起作用吗?
最好的问候
答案 0 :(得分:0)
我会做出正确答案。
虽然这是做角度的一种非常糟糕的方法,你不应该养成这样做的习惯,角度部分工作正常。问题是时刻。
我不太了解时刻,但在这种情况下你甚至不需要它。您可以使用javascript日期对象。像这样......
var d = new Date();
$scope.year = d.getFullYear();
$scope.month = d.getMonth();
$scope.day = d.getDate();
还应注意,当使用getMonth()时,它将月份作为数组的索引返回,因此January = 0,Feb = 1,12月为11。
编辑:如此快速地看,时刻做同样的事情,并且他们也会在&#39;日做同样的事情。 Day给你1,这是数组的第二个索引,这将是第二天,这是正确的。使用
moment().get('date');
相反,为您提供实际的日期,然后只需在月份结果中添加+1即可。