我在 AngularJS 中有 3 个范围,一个代表年份,一个代表月份,一个代表天,来自 3 个输入框。我想将它们合并为日期,以下代码正确插入日期,但添加了 22:00:00,如 2019-06-01 22:00:00.000。 如何只插入日期而不插入时间
HTML
<div class="col-md-1">
<div class="form-group has-error">
<label class="title_lable">Year:</label>
<input id="code" type="number" class="form-control input-sm"
ng-model="year">
</div>
</div>
<div class="col-md-2">
<div class="form-group has-error">
<label class="title_lable">Latin Description:</label>
<input type="text" class="form-control input-sm"
ng-model="latindesc">
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label class="title_lable">Local Description:</label>
<input type="text" class="form-control input-sm"
ng-model="localdesc">
</div>
</div>
<div class="col-md-1">
<div class="form-group">
<label class="title_lable">Month:</label>
<select ng-show="lang==1" class="form-control input-sm"
ng-model="month"
ng-options="m.mnthid as m.mnthanm for m in months">
</select>
<select ng-show="lang==0" class="form-control input-sm"
ng-model="month"
ng-options="m.mnthid as m.mnthenm for m in months">
</select>
</div>
</div>
<div class="col-md-1">
<div class="form-group">
<label class="title_lable">Day:</label>
<input type="number" class="form-control input-sm" ng-model="day">
</div>
</div>
Angular
var dFrom = new Date($scope.month + '/' + ($scope.day + 1) + '/' + $scope.year );
var days = $scope.ndays;
console.log(days);
var todate = new Date($scope.month + '/' + ($scope.day +1) + '/' + $scope.year);
todate = addDays(todate, days - 1);
console.log(todate);
var vacation = {
Sys_Key: $scope.syskey,
Vac_Code: $scope.code,
L_Desc: $scope.latindesc,
A_Desc: $scope.localdesc,
V_Start_Date: $scope.day,
V_Month: $scope.month,
V_Days_Count: $scope.ndays,
V_Year: $scope.year,
From_Date: dFrom,
To_Date: todate
}
function addDays(startDate, numberOfDays) {
var returnDate = new Date(
startDate.getFullYear(),
startDate.getMonth(),
startDate.getDate() + numberOfDays,
startDate.getHours(),
startDate.getMinutes(),
startDate.getSeconds()
);
return returnDate;
}
最佳答案
the code insert the date correctly but with 22:00:00 added to it like 2019-06-01 22:00:00.000. How to insert the date only without time
在幕后,日期被解析为 00:00 小时 UTC 时间。标准 .toString
方法将其显示为本地时间。
var d = new Date("2019-06-01");
console.log(d.toString());
console.log(d.toISOString());
如果您希望将其解析为本地时间,请附加“T00:00”
var d = new Date("2019-06-01T00:00");
console.log(d.toString());
console.log(d.toISOString());
当时区偏移不存在时,仅日期形式将解释为 UTC 时间,而日期时间形式将解释为本地时间。
欲了解更多信息,请参阅
关于javascript - 收集数字并将其转换为 AngularJS 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341791/