【问题标题】:Custom format DateTime to Timestamp自定义格式 DateTime 到 Timestamp
【发布时间】:2015-05-13 23:37:17
【问题描述】:

我已经多次搜索将自定义日期时间转换为时间戳的简单函数,但我没有得到确切的解决方案:

日期时间字符串是:

$dt = "14-05-2015 18:21";

(日-月-年时:分)(不是标准的日期时间格式)

有没有简单的函数可以将此字符串转换为时间戳?

谢谢。

【问题讨论】:

    标签: php datetime timestamp


    【解决方案1】:

    不能比以下更简单:

    $dt = "14-05-2015 18:21";
    echo  strtotime ($dt); //1431627660
    

    【讨论】:

    • 但是 PHP 将如何判断第一个和第二个元素是 Day 然后是 Month 而不是相反?就像在“06-05-2015 18:21”中一样
    • 来自手册:“m/d/y 或 d-m-y 格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则美国 m假定为 /d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 d-m-y 格式。" --请阅读:php.net/manual/en/function.strtotime.php
    【解决方案2】:

    如果格式始终相同,您可以这样做。

    $date = DateTime::createFromFormat('d-m-Y H:i', $dt);
    $timestamp = $date->format('U');
    

    【讨论】:

    • OP 已经说过它想要一个 unix 时间戳,DateTime 类的用法很酷,但这不是 OP 想要的,只需使用 U->getTimestamp(),为什么不使用 @ 987654325@以避免在交换d-m/m-d的问题上产生歧义
    • @Ghost - 谢谢,我也打算改一下 :)
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多