2

我有一个GridViewSqlDataSource

我有一个列类型:DateTime. 如果我只在 中键入日期TextBox,那么时间将是00:00:00。如果未指定,有什么方法可以自动添加当前时间?

谢谢

4

2 回答 2

1

当您仅在中键入日期时,TextBox您仍然可以提交并将当前时间添加到日期中。

DateTime inputDate = // However you are gathering the date ;
DateTime dateWithCurrentTime = inputDate.Add(DateTime.Now.TimeOfDay);

DateTime 有一个Add函数可以让你添加一个TimeSpan来获取一个新DateTime对象。

如果您将当前时间 ( DateTime.Now.TimeOfDay) 添加到您收集的输入中,您将获得一个DateTime包含当前时间和输入日期的新对象。

于 2012-06-19T20:49:52.253 回答
1

没有任何具体的代码,我只能模糊地回答你的问题,但这可能会给你一个想法。

服务器端解决方案: 全部在代码中:

// To get the Time of right now 
DateTime oNow = DateTime.Today;

// Get your entered Time assuming it is Entered YYYY/MM/DD
string sEnteredDate = DateTextBox.Text;

// Edit the String to get Year, Month, Day
string sEnteredYear = sEnteredDate.Substring(0, 4);
string sEnteredMonth = sEnteredDate.Substring(5, 2);
string sEnteredDay = sEnteredDate.Substring(8, 2);

// Create final DateTime
DateTime oDateForDb = oNow;

oDateForDb.Day = sEnteredDay;
oDateForDb.Month = sEnteredMonth;
oDateForDb.Year = sEnteredYear;

现在 oDateForDb 应该有您想要的日期和当前的 hh:mm:ss。

此外,这整个概念应该与 Calender Extender 或类似的工作正常工作,以保证输入将是正确的 DateFormat fe YYYY/MM/DD


编辑:

客户端解决方案

http://www.tizag.com/javascriptT/javascriptdate.php

这次只在 jscript 中执行与上述相同的操作。

于 2012-06-19T20:53:19.143 回答