【问题标题】:strtotime using date inputstrtotime 使用日期输入
【发布时间】:2012-12-07 16:29:19
【问题描述】:

现在我有一个包含 HTML5 日期输入的表单和第二个隐藏输入,它使用 strtotime 来获取今天的工作日(周一、周二等)。问题是如果有人选择今天的 12/5,它将输入到数据库 12/5 和星期五,而实际上应该是 12/5 星期三。

<input class="form" id="date" type="date" name="date" size="15" placeholder="yyyy-mm-dd" autofocus required />

<input type="hidden" name="weekday" value="<?php echo date('l',strtotime('now')); ?>" />

当我实现它时,我认为使用今天的日期不会有问题。但是用例已经改变,人们输入新的结果,但使用旧的日期会不匹配。当它应该是星期三时,它会在日期中显示为 12/5,在工作日中显示为星期五。

我不确定如何将两个输入链接在一起,因为表单实际上还没有提交。任何帮助,将不胜感激。

【问题讨论】:

  • 为什么需要通过客户端来回今天的工作日?
  • @MarcB 我不需要。我当时想不出任何其他方法来做到这一点。我实际上在这里问了一个问题,让人们给我关于如何实施日期的想法,有人建议实施一个隐藏字段......所以我做到了。当时的用例不同。

标签: php mysql html date strtotime


【解决方案1】:

你为什么不在服务器端这样做呢?

$date = $_POST["date"];
$dateString = date('m/d l',strtotime($date));

Read more关于PHP date()

Read more关于PHP strtotime()

只需完全删除隐藏的输入即可。没必要。

【讨论】:

  • 嗯...所以基本上这将摆脱表单上的隐藏输入,我只需将第二行添加到我的插入页面中?
  • 是的,当您有一个动态日期时,您不需要固定隐藏输入来获取今天的工作日。
【解决方案2】:

只需使用 PHP 的 DateTime 函数并一起删除隐藏字段。

$date = date_create($_POST['date']);
$day = $date->format('l');

有关 DateTime 构造的更多信息:http://us3.php.net/manual/en/datetime.construct.php

我强烈建议养成使用 PHP 内置的 DateTime 类而不是传统日期函数的习惯。它们通常更容易使用,并且不受 unix 时代限制的影响。它们还可以用于面向对象的方式或程序化方式,具体取决于您的编码偏好。

【讨论】:

    猜你喜欢
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多