转换为DateTime

时间:2013-04-09 06:20:38

标签: asp.net asp.net-mvc asp.net-mvc-3

我有以下标签,首先选择日期是白天,第二个是月份,第三个是年份

<select id="d" class="styledselect-day" tabindex="6">
                    <option value="">dd</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                </select>
<select id="m" class="styledselect-month" tabindex="7" >
                        <option value="">mm</option>
                        <option value="1">Jan</option>
                        <option value="2">Feb</option>
                        <option value="3">Mar</option>
                        <option value="4">Apr</option>
                        <option value="5">May</option>
                        <option value="6">Jun</option>
                        <option value="7">Jul</option>
                        <option value="8">Aug</option>
                        <option value="9">Sep</option>
                        <option value="10">Oct</option>
                        <option value="11">Nov</option>
                        <option value="12">Dec</option>
                    </select>

<select  id="y"  class="styledselect-year" tabindex="8">
<option value="yyyy">yyyy</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option><option value="2008">2008</option><option value="2009">2009</option><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option>
                    </select>

以下是JS代码,用于向控制器发送信息。我在Session

中存储这些信息的位置
$.ajax({
                        type: "POST",
                        url: "@Url.Action("AcceptPersonalInfo","Register")",
                        data: { dateDay: $("#d").val(), dateMonth: $("#m").val(), dateYear: $("#y").val() },
                        success: function () {
                            $("#contentSpan").load("/Register/ContactInfo");
                        }
                     });

以下是会话代码

public void AcceptPersonalInfo(string dateDay, string dateMonth, string dateYear) //
        {
            Session["DateDay"] = dateDay;
            Session["DateMonth"] = dateMonth;
            Session["DateYear"] = dateYear;

        }

然后我必须在DateTime对象中存储日期以保存到数据库。

p.DOB = Convert.ToDateTime(Convert.ToInt32(Session["DateMonth"]) + Convert.ToInt32(Session["DateDay"]) + Convert.ToInt32(Session["DateYear"]));

但它没有将其转换为日期时间。 “p.DOB”是DateTime类型。请帮助转换失败的原因。

3 个答案:

答案 0 :(得分:1)

实际上你正在添加所有整数,这就是你没有得到的原因。  尝试以下代码

 string date = Session["DateMonth"].Tostring() + "-" + Session["DateDay"] + "-" + Session["DateYear"];
 p.DOB=Convert.ToDateTime(date);

答案 1 :(得分:0)

您可以使用

p.DOB=new DateTime(Convert.ToInt32(Session["DateYear"]),  
                   Convert.ToInt32(Session["DateMonth"]),
                   Convert.ToInt32(Session["DateDay"]));

答案 2 :(得分:0)

这是因为您正在转换int。你忘了添加分隔符:

p.DOB = Convert.ToDateTime(
    Convert.ToInt32(Session["DateMonth"]) + "/" + 
    Convert.ToInt32(Session["DateDay"]) + "/" + 
    Convert.ToInt32(Session["DateYear"]));