日期计数PHP

时间:2016-05-26 04:40:37

标签: php mysql date

我正在建立一个任务列表。我的数据库中有两个表。模板和任务 模板结构如此

id, task_name, function, text, days_to_action

1, Touch Base, call, Call to touch base, 7

任务表的结构如下:

id, task_name, function, text, due_date
1, Touch Base, call, Call to touch base, 02:06:2016

截止日期是用这个公式计算的($ set_days抓住了days_to_action):

$dueDate = date('d:m:Y', strtotime('+'.$set_days.' days'));

如您所见,我使用的是澳大利亚日期格式。为了做正确的事,我把它包括在我的所有页面的顶部:

date_default_timezone_set('Australia/Brisbane');

在我的页面上,我正在尝试显示今天到期或过期的任务。

$today = date('d:m:Y');
$task_list = $mysqli->query("SELECT * FROM task WHERE id='$linkid' && time_due <= '$today' ORDER BY datetime DESC");

我发现的错误是当这些日子翻到新的一个月(如上面的示例)时,我的代码认为02/06/2016(年/月/日)是一个在2017年5月28日之前的日期

数据库只能使用美国格式吗?有没有选择切换到澳大利亚?我缺少一步吗? 乙

1 个答案:

答案 0 :(得分:1)

通常,为了存储日期值,应使用DATE数据类型,因为它便于维护和数据检索。

MySQL在&#39; YYYY-MM-DD&#39;中检索并显示DATE值。格式。

您可以在PHP中轻松更改应用程序级别的格式,用于显示或其他操作目的,但您应始终使用DATE数据类型推送/拉取MySQL中的记录,即&#39; YYYY-MM-DD&#39;。

您可以使用以下命令更改数据类型:

ALTER TABLE task CHANGE due_date due_date DATE

参考