如何解析datetime到date对象? [英] How to parse datetime to date object?

查看:45
本文介绍了如何解析datetime到date对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,



我试图将datetime参数解析为日期,但我没有获得所需的输出,因为输出只显示年份而不是整个日期。



这是我目前的javascript代码:

Hello,

I am trying to parse datetime parameter as date but I am not getting desired output, since the output is only showing year instead of the whole date.

This is my current javascript code:

 function drawVisualization(dataValues, chartTitle, columnNames, categoryCaption) {
    if (dataValues.length < 1)
        return;

    var data = new google.visualization.DataTable();
    data.addColumn('string', columnNames.split(',')[0]);
    data.addColumn('number', columnNames.split(',')[1]);
    data.addColumn('string', columnNames.split(',')[2]);
    data.addColumn('datetime', columnNames.split(',')[3]);

    for (var i = 0; i < dataValues.length; i++) {

        //var dateTimeString = "\/Date(1358294400000)\/";
        //var dateTime = new Date(parseInt(dateTimeString.split("/"[\(\)]/)[3]));

        var date = new Date(parseInt(dataValues[i].Date.substr(6),10));

        //date = date.getFullYear() + "-" +
        //("0" + (date.getMonth() + 1)).slice(-2) + "-" +

        data.addRow([dataValues[i].ColumnName, dataValues[i].Value, dataValues[i].Type, date]);
    }

    // Define a Pie chart
    var pie = new google.visualization.ChartWrapper({
        'chartType': 'LineChart',
        'containerId': 'PieChartContainer',
        'options': {
            'width': 950,
            'height': 450,
            'legend': 'right',
            'title': chartTitle,
            'chartArea': { 'left': 100, 'top': 100, 'right': 0, 'bottom': 100 },
            'pieSliceText': 'label',
            'tooltip': { 'text': 'percentage' }
        },
        'view': { 'columns': [3, 1] }
    });

    new google.visualization.Dashboard(document.getElementById('PieChartExample')).bind([categoryPicker, stringFilter], [pie]).draw(data);
}
    }





从后面的代码中,我从服务器传递日期时间作为网络方法的一部分:



From the code behind, I am passing the datetime from the server as part of web method:

protected void Page_Load(object sender, EventArgs e)
  {

      JavaScriptSerializer jss = new JavaScriptSerializer();

      ClientScript.RegisterStartupScript(this.GetType(), "TestInitPageScript",
      string.Format("<script type=\"text/javascript\">google.load('visualization','1.0',{{'packages':['corechart','controls']}});google.setOnLoadCallback(function(){{drawVisualization({0},'{1}','{2}','{3}');}});</script>",
      jss.Serialize(GetData()),
      "Text Example",
      "Text Example",
       "type,"));

  }

  [WebMethod]
  public static List<test> GetData()
  {
      SqlConnection conn = new SqlConnection("######");
      DataSet ds = new DataSet();
      DataTable dt = new DataTable();
      conn.Open();
      var yesterday = DateTime.Today.AddDays(-1);
      string cmdstr = "select top 5 Name, [Decimal price],Cover, UploadDate from [dbo].[database]";
      SqlCommand cmd = new SqlCommand(cmdstr, conn);
      SqlDataAdapter adp = new SqlDataAdapter(cmd);
      adp.Fill(ds);
      dt = ds.Tables[0];
      List<test> dataList = new List<test>();
      string cat = "";
      float val = 0;
      string typ = "";
      DateTime dat = DateTime.Now;

      //dat = DateTime.ParseExact("yyyyMMddHHmmss", CultureInfo.InvariantCulture);

      foreach (DataRow dr in dt.Rows)
      {
          try
          {
              cat = dr[0].ToString();

              val = Convert.ToInt32(dr[1]);

              typ = dr[2].ToString();

              dat = (DateTime)(dr[3]);

          }
          catch
          {
          }
          dataList.Add(new test(cat, val, typ, dat));
      }
      return dataList;
  }





更新日期代码:





Updated date code:

function drawVisualization(dataValues, chartTitle, columnNames, categoryCaption) {
        if (dataValues.length < 1)
            return;
        var data = new google.visualization.DataTable();
        data.addColumn('string', columnNames.split(',')[0]);
        data.addColumn('number', columnNames.split(',')[1]);
        data.addColumn('string', columnNames.split(',')[2]);
        data.addColumn('datetime', columnNames.split(',')[3]);

        for (var i = 0; i < dataValues.length; i++) {

            //var dateTimeString = "\/Date(1358294400000)\/";
            //var dateTime = new Date(parseInt(dateTimeString.split("/"[\(\)]/)[3]));

            //var date = new Date(parseInt(dataValues[i].Date.substr(6), 10));

            //alert(dataValues[i].Date);

            var dateString = dataValues[i].Date.substr(6);
            var currentTime = new Date(parseInt(dateString));
            var month = currentTime.getMonth() + 1;
            var day = currentTime.getDate();
            var year = currentTime.getFullYear();
            var date = day + "/" + month + "/" + year;
            alert(date);

            data.addRow([dataValues[i].ColumnName, dataValues[i].Value, dataValues[i].Type, date]);
            
        }



非常感谢任何帮助。非常感谢提前。


Any help would be very much appreciated. Many thanks in advance.

推荐答案

看看这里:日期时间结构 [ ^ ]



DateTime始终是日期和时间。您应该将日期存储为日期时间数据类型,但您可以以自定义格式显示它:自定义日期和时间格式字符串 [ ^ ]。

在SQL Server端,您可以使用 CONVERT [ ^ ]功能。
Have a look here: DateTime Structure[^]

DateTime is always date and time of day. You should store date as a datetime data type, but you are able to display it in custom format: Custom Date and Time Format Strings[^].
On SQL Server side, you can 'reject' time part, using CONVERT[^] function.


试试这个...



try this...

var date_test = new Date("2011-07-14 11:23:00".replace(/-/g,"/"));



试试这个...



string dt = System。 DateTime.ParseExact(Date,dd / MM / yyyy,null).ToString();
try this...

string dt = System.DateTime.ParseExact("Date", "dd/MM/yyyy", null).ToString();


这篇关于如何解析datetime到date对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆