【问题标题】:Best way to convert/show a date转换/显示日期的最佳方式
【发布时间】:2016-07-08 17:50:06
【问题描述】:

我有一个要求用户输入日期的 php 表单。我有三个复选框可供他们选择:“今天”、“明天”和“其他”(其他要求他们在字段中输入特定日期。

我希望“今天”打印出当天,“明天”打印出明天的日期/日期,“其他”打印出他们选择的日期。格式应为“日、月日期”(7 月 8 日,星期五)。

对于今天的日期,它非常简单,只需使用 getdate() 数组,但是有没有一种简单的方法来获取明天的日期(不需要多个步骤/错误检查)?有没有一种简单的方法来转换输出(类型=日期的输出中存储的星期几)?

【问题讨论】:

标签: php date strtotime getdate


【解决方案1】:

您可以使用strtotime

明天:<? $tomorrow = strotime("+1 day"); ?>

对于您需要解析的任何日期,使用 strotime($date_input);,但请注意 PHP 会尝试找出日期格式,日期以斜线分隔是美国标准 (M/D/Y),并且用破折号分隔的日期是国际 (D-M-Y)。

对于工作日,它是 date 函数的参数 (l)。因此,以您希望的格式打印:

echo date('l, F d', strtotime($date));

【讨论】:

  • 所以对于另一个日期字段,我这样做了:"$date=strtotime($_POST['pickupDateOther']);"当我输入日期(03-14-2017)时,它显示:“1489464000”
  • 这是日期的时间戳,作为第二个参数传递给date。你希望的格式的字符串由$dateFormatted = date('l, F d', $date);获取
  • 抱歉,我错过了您的$date 已经有一个strtotime。格式化时无需再次调用
  • 它仍然打印出一个奇怪的数字。有什么我忘记做的吗?
  • $date=strtotime($_POST['pickupDateOther']); $dateFormatted = date('l, F d', $date); echo $dateFormatted; ?
【解决方案2】:
date('l F\, d', strtotime(' +1 day'));

【讨论】:

    【解决方案3】:

    DateTime 类接受多种类型的日期输入,例如:

    $string = "today" or "tomorrow" or "1 day" or "10 years"
    $date = new DateTime($string);
    

    然后你可以随意格式化日期:

    $formattedDate = $date->format('l, F jS');
    

    这会将日期格式化为:Friday, July 8th

    有关可能格式的完整列表,请参阅 http://php.net/manual/en/function.date.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2015-11-21
      • 1970-01-01
      • 2023-03-20
      • 2017-10-30
      • 2021-12-25
      • 2010-11-11
      • 2017-09-19
      相关资源
      最近更新 更多