我面对的是Angular js 1.x的奇怪问题, 我有很多日历可以选择日期。 rfs date只能正常工作,其余日期会在命中服务器时更改请求有效负载json。
这在我的本地计算机上工作正常,但在JST上却无法正常工作。 在我当地的2019-06-16T18:30Z [UTC]中保存为'2019-06-17 00:00:00',
但是在日本服务器中,它可以保存,因为它是2019-06-16T18:30:00:00。
但它也将转换为2019-06-16T18:30Z [UTC]
正在添加不必要的偏移量。
我试图将其进一步转换为UTC
function convertDateToUTC(edate) {
if(edate != undefined && edate != null) {
var date = new Date(edate);
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate() + 1, 0, 0, 0);
} else {
return edate;
}
}
vm.salesContract.contractStartDate = convertDateToUTC(vm.salesContract.contractStartDate);
也尝试过
var dateoffset =“ T00:00:000Z”;
vm.salesContract.contractStartDate = trimDate(vm.salesContract.contractStartDate)+ dateoffset;
function trimDate(date) {
if(date != null && date != undefined && date != '') {
var date = new Date(date);
return date.getFullYear() +"-"+(date.getMonth() + 1)+"-"+date.getDate();
} else {
return '';
}
}
HTML表单
<div class="form-group">
<label class="control-label"
data-translate="inventoryApp.salesContract.rfs"
for="field_rfs">Rfs</label>
<div class="input-group">
<input id="field_rfs"
type="text" class="form-control"
name="rfs" datetime-picker="{{'yyyy-MM-dd'}}"
ng-model="vm.salesContract.rfs"
is-open="vm.datePickerOpenStatus.rfs"
button-bar="vm.datePicker.buttonBar" enable-time="false" datepicker-options="vm.datePicker.options"
ng-disabled="vm.isEdit && vm.userconfigFlag"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default"
ng-click="vm.openCalendar('rfs')">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</div>
</div>
<div class="form-group">
<label class="control-label"
data-translate="inventoryApp.salesContract.contractStartDate"
for="field_contractStartDate">Contract Start Date</label>
<div class="input-group">
<input id="field_contractStartDate"
type="text" class="form-control"
name="contractStartDate" datetime-picker="{{'yyyy-MM-dd'}}"
ng-change="vm.changeContractTerm(vm.salesContract.contractStartDate)"
ng-model="vm.salesContract.contractStartDate"
is-open="vm.datePickerOpenStatus.contractStartDate"
button-bar="vm.datePicker.buttonBar" enable-time="false"
datepicker-options="vm.datePicker.options"
ng-disabled="vm.isEdit && vm.userconfigFlag"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default"
ng-click="vm.openCalendar('contractStartDate')">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</div>
</div>
在js控制器中
SalesContract.update(vm.salesContract, onSaveSuccess, onSaveError);
两个日期都应保存在db中,因为它们是从html表单中选择的。
保存在数据库中的当前值是:
rfs ='2019-06-17 00:00:00'和contractStartDate ='2019-06-16 20:30:00'
预期输出应保存
rfs ='2019-06-17 00:00:00'和contractStartDate ='2019-06-17 00:00:00