我有一个Angular应用程序,它接受日期(仅日期不是时间)并将它们发布到Web API 2 REST服务.由于时区问题,来自印度的人使用该应用程序时,我们遇到了一个问题.
目前,Angular应用程序正在将日期转换为UTC时区的ISO8601格式并将其发送到Web API.在Web API端收到数据时,日期最终不正确.如果6/21/2016被放入表格,日期将于2016年6月20日结束.所需的解决方案是使表单中输入的实际日期值为API接收的日期值.
一个建议的解决方案是将日期视为字符串而不是日期,然后只传递日期部分.这对我来说似乎是一种破坏,似乎并不是“正确”的做法.
处理这种情况的正确方法是什么?
解决方法
日期格式yyyy-MM-dd将在美国/印度接受,因此您可以将其传递给您的WebAPI.在发布之前的
JavaScript中,您可以像这样更改日期.
$scope.MyDate = $filter('date')($scope.MyDate,'yyyy-MM-dd',timezone);
如果你也想要时间,格式将是yyyy-MM-ddTHH:mmZ