Angularjs ui.bootstrap.timepicker返回的时间比它应该返回的时间少2小时
我使用ui.bootstrap.timepicker在我的应用程序中添加时间间隔。 这是我选择时间的地方,在按钮“插入并保存”“将数据发送到api”上。 问题是,在这里您可以看到所选时间,但是当将它发送到API时,时间比以前少了2小时。 这是请求负载Angularjs ui.bootstrap.timepicker返回的时间比它应该返回的时间少2小时,angularjs,twitter-bootstrap,Angularjs,Twitter Bootstrap,我使用ui.bootstrap.timepicker在我的应用程序中添加时间间隔。 这是我选择时间的地方,在按钮“插入并保存”“将数据发送到api”上。 问题是,在这里您可以看到所选时间,但是当将它发送到API时,时间比以前少了2小时。 这是请求负载 {from_time: "2017-03-29T11:37:05.541Z", to_time: "2017-03-29T12:42:05.549Z"} from_time:"2017-03-29T11:37:05.541Z" to_time:"
{from_time: "2017-03-29T11:37:05.541Z", to_time: "2017-03-29T12:42:05.549Z"}
from_time:"2017-03-29T11:37:05.541Z"
to_time:"2017-03-29T12:42:05.549Z"
这是我的html
<form class="form" role="form" ng-submit="addRow(fromUrbanTime, toUrbanTime)">
<div class="col-md-12">
<div class="col-md-6">
<div class="col-md-6">
<h5><b>{{'FROM'| translate}} (h)</b></h5>
<div uib-timepicker ng-model="fromUrbanTime" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"></div>
<hr>
</div>
<div class="col-md-6">
<h5><b>{{'TO'| translate}} (h)</b></h5>
<div uib-timepicker ng-model="toUrbanTime" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"></div>
<hr>
<button type="submit" class="btn btn-default">Insert & Save</button>
</div>
</div>
</div>
<pre class="alert alert-info">Time is: {{fromUrbanTime | date:'shortTime' }}</pre>
<pre class="alert alert-info">Time is: {{toUrbanTime | date:'shortTime' }}</pre>
</form>
您的本地时区似乎是GMT+2<代码>日期在JavaScript中创建的对象始终位于本地时区。然而,您的后端似乎在UTC中工作,UTC是GMT+0,因此在后端进行转换。如果是这种情况,那么当后端将日期(包括时区信息)发送回客户端时,它们应该再次在本地时区中创建,这意味着+2小时 例如:
var now = new Date()
console.log(now.toString()); // "Wed Mar 29 2017 15:03:10 GMT+0200 (FLE Daylight Time)"
发送到服务器并转换为ISO格式后,应转换为:
"2017-03-29T13:03:10.000Z"
然后,如果该值已交付给客户:
var now = new Date("2017-03-29T13:03:10.000Z");
console.log(now.toString()); // "Wed Mar 29 2017 15:03:10 GMT+0200 (FLE Daylight Time)"
您能在浏览器开发工具中看到请求吗?我只是想确保问题不在前端。。但是在后面。。您应该看到从浏览器发送的值与您在我的post请求有效负载中选择的值相同,时间缩短了2小时。。。。
var now = new Date("2017-03-29T13:03:10.000Z");
console.log(now.toString()); // "Wed Mar 29 2017 15:03:10 GMT+0200 (FLE Daylight Time)"