我有一个angularJS应用程序,它可以执行一些基本的日历功能。编辑后,当我将时间发送回服务器时,我注意到时间不是用户输入的时间,而是用户输入的时间加上GMT偏移量。
例如,如果我在帖子之前将日历事件写入console.log,我会看到
end: Thu May 15 2014 11:30:00 GMT-0500 (Central Daylight Time)
id: 32525
start: Thu May 15 2014 10:00:00 GMT-0500 (Central Daylight Time)下面是我在angularJS中保存事件的方法
saveEvent = function(calEvent){
console.log(calEvnt);
$http.post('http://localhost:52491/api/SimpleCalendarEvent/', calEvnt);
}但是api控制器的post方法上的断点显示
start = May 25 2014, 3:00 PM
end = May 15 2014, 4:30 pm下面是我在api控制器上的post方法
public void Post(jsCalendarEvent calEvent)
{
//calEvent.start = calEvent.start.ToLocalTime();
//calEvent.end = calEvent.end.ToLocalTime();
SaveJsCalendarEvent cmd = new SaveJsCalendarEvent(_context);
cmd.Event = calEvent;
cmd.Execute();
}这是jsCalendar事件
public class jsCalendarEvent
{
public int id { get; set; }
public DateTime start { get; set; }
public DateTime end { get; set; }
}如果我取消注释
calEvent.start = calEvent.start.ToLocalTime();
calEvent.end = calEvent.end.ToLocalTime();一切都是正确的,但这是一场等待发生的灾难。有人遇到过这个问题,我知道有更好的方法来解决这个问题。
发布于 2014-05-21 14:28:19
如果没有更多细节就很难诊断,但是您可以考虑在jsCalendarEvent类中使用DateTimeOffset而不是DateTime。
https://stackoverflow.com/questions/23726461
复制相似问题