如何解析datetime到date对象? [英] How to parse datetime to date object?
本文介绍了如何解析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屋!
查看全文