将字符串格式的时间转换为c#timespan

时间:2015-04-23 14:51:26

标签: c# jquery asp.net-mvc

我有一个像3:30pm这样的值作为javascript字符串。

我有一个MVC控制器,它接受一个TimeSpan的参数。

我向控制器发了一个jquery帖子。如何将字符串格式的时间转换为TimeSpan格式?

2 个答案:

答案 0 :(得分:1)

如果你设法将你的javascript字符串解析为DateTime,你可以这样做:

DateTime.TimeOfDay

之后将代表自午夜以来作为TimeSpan过去一天的部分。

答案 1 :(得分:1)

由于TimeSpan没有默认的ctro(无参数),因此无法使用默认的模型绑定器。你需要自己编写:

public class TimeModelBinder:DefaultModelBinder
{
    public override object BindModel(ControllerContext controllerContext, 
                                     ModelBindingContext bindingContext)
    {
        var hour = controllerContext.HttpContext.Request["hours"];
        var minutes = controllerContext.HttpContext.Request["minutes"];
        var time = new TimeSpan(int.Parse(Hour), int.Parse(minutes), 0);
        return return time;
    }
}

控制器:

public ActionResult Index([ModelBinder(typeof(TimeModelBinder))] TimeSpan model)
{
}

发表:

$.post("/home/index",  {
         hours: 5,
         minutes: 10  }, function() {
              //success
         });

从内存中写出