2012-11-12 137 views
0

因此,我正在研究PHP的调度器。基本上我有一个研讨会的列表,每个会议在同一天同时在同一天聚会一次,并且运行几周。PHP混合格式日期/时间 - 星期和时间的日期

现在我的数据库我有p键,开始日期,结束日期,本次研讨会的名称,代表的日期和时间的字符串。

现在我有一个显示所有当前的研讨会运行基于今天的日期比较的所有研讨会开始和结束日期的页面。现在我想让它只是展示今天的研讨会。

我想我需要作出日程安排变量的日期。 varchar字符串是一个dect磁带修复,因为我甚至不知道该部分从哪里开始。

如何格式化SQL变量的日期和时间存储在日期型变量的格式为[平日] [时间]?这可能吗?

编辑

可有人谁明白我在问帮我改写我的问题?看起来我无法做出我清楚的要求。

例如假设有MySQL的研讨会是晚上7点开始周三11/14和12/26结束。我将星期三下午7点保存为VARCHAR字符串,并将StartDate和EndDate保存为日期。现在我列出所有正在进行的研讨会没有问题,但是我想仅通过那些与当前工作日相对应的星期几的会议来过滤这些问题。要做到这一点,我需要将'星期三下午7点'转换为DATE变量,同时仍然保持完全相同的格式以便按计划回显。

回答

0

既然没有人能够在这里明白我的问题,我会回答它自己。在与我认识的几位专业人士和老师交谈后(他们没有理解我想要的东西......),我发现它在技术上是不可能的,但是一种解决方法是选择一个任意日期,并在该工作日内使用它作为一个替代品,然后总是以平日格式呈现。

2

以字符串存储日期是不鼓励的。 MySQL包含许多Date/Time functions。您应该将此数据存储为DateTime datatype并使用其中一种功能对其进行处理。

例如:

-- returns 1 for Monday 
SELECT DATE_FORMAT(CURDATE(), '%w'); 
+0

是的,当我构建了我知道该怎么做的代码的所有部分时,我是在做占位符。现在我必须返回并用实际的DATETIME替换它,我的问题是如何格式化DATETIME以显示平日时间:分钟?m –

+0

正如我的答案中所指出的,['DATE_FORMAT()'](http:// dev.mysql.com/doc/refman/5.1/en/date-and-time-functions。HTML#function_date格式) –

1

MySQL的花费 'YYYY-MM-DD HH:MM:SS' 的日期时间和 'YYYY-MM-DD' 的日期格式。

根据您想如何储存它,你可以添加日期列,然后做一个更新:

更新表设置datecolumn =“date_string_col”;

只要VARCHAR山坳你现在已经是存储在适当的格式,否则,你将不得不格式更改为指定一个。

欲了解更多信息:http://dev.mysql.com/doc/refman/5.1/en/datetime.html

+0

谢谢您的回复,我的问题是与格式化的DATETIME变量显示当周,而不是任何特定日期的日子,如果这甚至有可能,然后在表中显示的所有行DATETIME平日相同,当前工作日,而当前日历日期落在用于该项的开始和结束日期之间。 –

+0

当然,你可以做到这一点知道你解析的数据,你只需要对$天的值进行比较,使用一周:$ FIRSTDAY和$ LASTDAY之间datecol – Michael