【问题标题】:Convert date range to timestamp [closed]将日期范围转换为时间戳[关闭]
【发布时间】:2014-03-16 12:41:19
【问题描述】:

$time_range_from_user = '2014-03-28 17:00:00 to 2014-03-28 18:00:00';

有什么方法可以将 $time_range_from_user 和转换为时间戳并分别返回开始时间和结束时间?

【问题讨论】:

  • 在“to”上展开,给你两个数组元素,修剪空格,并使用 DateTime 进行转换
  • 您已经在一个小时前询问了similar question。您没有得到任何答案,因为问题不清楚。如果您需要帮助,请实际说明您要达到的目标(连同预期结果、到目前为止您尝试过的代码、错误消息(如果有))。
  • 在 Stackoverflow 上像 “有什么办法吗” 这样问没有多大意义,因为它是关于编程的,即使是如果它需要扩展语言本身以提供所需的功能。相反,您需要概述您的编程问题到底是什么,到目前为止您尝试过什么以及您遇到问题的具体部分。

标签: php


【解决方案1】:

使用 explode() 将所选分隔符上的字符串分隔到一个数组中。在这种情况下,我们将使用分隔符 ' to ' 来分隔字符串。

$time_range_from_user = '2014-03-28 17:00:00 to 2014-03-28 18:00:00';

$ranges = explode(' to ', $time_range_from_user); //Split string on ' to '

$start_timestamp = strtotime($ranges[0]); //Take first result and turn it into a timestamp

$end_timestamp = strtotime($ranges[1]); //Take second result and turn it into a timestamp

echo date('Y-m-d H:i:s', $start_timestamp) . ' ' . date('Y-m-d H:i:s', $end_timestamp); //Output both time stamps in Y-m-d H:i:s format.

变量$start_timestamp$end_timestamp 分别包含2014-03-28 17:00:002014-03-28 18:00:00 表示的UNIX 时间戳。最后我echo 使用date() 格式化输出以匹配您的初始格式。

【讨论】:

  • 只是将字符串转换为时间戳的一点点:'$datetime = DateTime::createFromFormat('d/m/Y H:i', '10/10/2012 10:10', new DateTimeZone ('某物'));' '$timestamp = $datetime->getTimestamp();'
  • 请添加注释,仅代码答案不好。这也不是一个好的答案。您忘记转换为时间戳
  • 感谢您的意见。为清晰起见进行了更新。
【解决方案2】:

em...只是用'to'字符串分割它? $parts = explode(' to ', $time_range_from_user);

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 2016-11-26
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 2021-08-26
    • 1970-01-01
    相关资源
    最近更新 更多