Время прошло бы к Вашему времени сервера. Легкое обходное решение для этого должно вручную установить часовой пояс при помощи date_default_timezone_set
перед date()
или time()
, функции вызваны к.
я нахожусь в Мельбурне, Австралия , таким образом, у меня есть что-то вроде этого:
date_default_timezone_set('Australia/Melbourne');
Или другой пример LA - США :
date_default_timezone_set('America/Los_Angeles');
можно также видеть, какой часовой пояс сервер в настоящее время на пути:
date_default_timezone_get();
Так что-то как:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
, Таким образом, короткий ответ для Вашего вопроса был бы:
// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());
Тогда все времена были бы к часовому поясу, который Вы просто устанавливаете:)
Я почти уверен, что от этого вы не добьетесь какого-либо улучшения производительности, но это может немного облегчить чтение:
var checkedIDs = from GridViewRow msgRow in messagesGrid.Rows
where ((CheckBox)msgRow.FindControl("chkUpdateStatus")).Checked
select Int32.Parse(messagesGrid.DataKeys[msgRow.RowIndex].Value.ToString());
Опять же, нет конечно, это имеет значение. Кроме того, почему вы конвертируете в строку, а затем в int? Что-то Convert.ToInt32
не может для вас сделать?
Я не уверен, что Rows является IEnumerable, а может и не быть, но я предполагаю, что это так
List<int> checkedIDs = messagesGrid.Rows
.Where<GridViewRow>(i => (CheckBox)i.FindControl("chkUpdateStatus").Checked)
.Select<GridViewRow, int>(i => return int.Parse(messagesGrid.DataKeys[i.RowIndex].Value.ToString()))
.ToList<int>();
Я только что сделал это в блокноте, там может быть ошибка компиляции. Но вот как вы можете сделать то же самое с Linq.
У меня есть что-то похожее, но я использовал это в нескольких местах, поэтому я создал метод расширения.
public static void ActOnCheckedRows(this GridView gridView, string checkBoxId, Action<IEnumerable<int>> action)
{
var checkedRows = from GridViewRow msgRow in gridView.Rows
where ((CheckBox)msgRow.FindControl(checkBoxId)).Checked
select (int) gridView.DataKeys[msgRow.RowIndex].Value;
action(checkedRows);
}
Итак, теперь я могу что-то делать со всеми проверенными строками. Компилятор довольно хорошо вычисляет типы, но иногда мне нужно явно объявить checkedRows как тип IEnumerable.
gvTasksToBill.ActOnCheckedRows("RowLevelCheckBox", checkedRows =>
{
foreach (int id in checkedRows)
{
// do something with id
}
});