【问题标题】:PHP mixed format date/time - day of the week and timePHP 混合格式日期/时间 - 星期几和时间
【发布时间】:2012-11-12 22:27:57
【问题描述】:

所以,我正在为研讨会开发一个 PHP 调度程序。基本上我有一个研讨会列表,每个研讨会每周在同一天的同一时间开会一次,并运行固定的周数。

现在我的数据库中有 pkey、开始日期、结束日期、研讨会名称以及表示日期和时间的字符串。

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

我假设我需要将日程表变量设为 DATE。 varchar 字符串是 dect 磁带修复,因为我什至不知道从哪里开始。

如何格式化 SQL 变量以将日期和时间存储在格式为 [weekday] [time] 的 DATE 类型变量中?这可能吗?

编辑

了解我所问内容的人可以帮我改写我的问题吗?好像我不能说清楚我在问什么。

例如,假设有 MySQL 研讨会,时间是周三晚上 7 点,从 11 月 14 日开始,到 12 月 26 日结束。我将星期三晚上 7 点保存为 VARCHAR 字符串,并将 StartDate 和 EndDate 保存为日期。现在,我可以毫无问题地列出当前正在进行的所有研讨会,但我想仅通过与当前工作日对应的一周中的某一天开会来过滤这些研讨会。为此,我需要将 'Wednesday 7pm' 转换为 DATE 变量,同时仍保持完全相同的格式以在日程表中回显。

【问题讨论】:

    标签: php mysql sql datetime


    【解决方案1】:

    不鼓励将日期存储为字符串。 MySQL 包含许多Date / Time functions。您应该将此数据存储为 DateTime datatype 并使用其中一个函数对其进行操作。

    例如:

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

    【讨论】:

    • 是的,我在构建所有我知道该怎么做的代码部分时,将其作为占位符。现在我必须返回并用实际的 DATETIME 替换它,我的问题是如何格式化该 DATETIME 以显示 Weekday Hour:Minute?m
    • 如我的回答中所述,DATE_FORMAT()
    【解决方案2】:

    MySQL 采用 'YYYY-MM-DD HH:MM:SS' 作为日期时间,采用 'YYYY-MM-DD' 作为日期格式。

    根据您的存储方式,您可以添加 DATE 列,然后进行更新:

    update TABLE set datecolumn = 'date_string_col';

    只要您现在拥有的 varchar col 以适当的格式存储,否则,您必须将格式更改为指定的格式。

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

    【讨论】:

    • 感谢您的回复,我的问题是格式化 DATETIME 变量以显示星期几而不是任何特定日期(如果可能的话),然后显示表中的所有行DATETIME 工作日与当前工作日相同,并且当前日历日期介于学期的开始日期和结束日期之间。
    • 当然,你可以知道你已经解析了数据,你只需要使用 $FIRSTDAY 和 $LASTDAY 之间的 datecol 与一周的 $day 的值进行比较
    【解决方案3】:

    由于这里没有人能够理解我的问题,我将自己回答。在与我认识的一些专业人士和讲师交谈后(他们理解我想要的东西没有问题......),我发现这在技术上是不可能的,但一种解决方法是选择那个工作日的任意日期,并使用它作为替身,则始终以工作日格式呈现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 2013-10-05
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多