搜索

首页  >  问答  >  正文

在 PHP 中将日期转换为时间戳:分步指南

我如何获取时间戳,例如2008年9月22日?

P粉204136428P粉204136428432 天前851

全部回复(1)我来回复

  • P粉670838735

    P粉6708387352023-10-09 16:47:40


    此方法适用于 Windows 和 Unix并且具有时区感知能力,这可能就是您想要的,如果您使用日期

    如果您不关心时区,或者想要使用您的服务器使用的时区:

    $d = DateTime::createFromFormat('d-m-Y H:i:s', '22-09-2008 00:00:00');
    if ($d === false) {
        die("Incorrect date string");
    } else {
        echo $d->getTimestamp();
    }

    1222093324 (这将根据您的服务器时区而有所不同......)


    如果您想指定哪个时区,此处为 EST。 (与纽约相同。)

    $d = DateTime::createFromFormat(
        'd-m-Y H:i:s',
        '22-09-2008 00:00:00',
        new DateTimeZone('EST')
    );
    
    if ($d === false) {
        die("Incorrect date string");
    } else {
        echo $d->getTimestamp();
    }

    1222093305


    或者,如果您想使用UTC。 (与“GMT”相同。)

    $d = DateTime::createFromFormat(
        'd-m-Y H:i:s',
        '22-09-2008 00:00:00',
        new DateTimeZone('UTC')
    );
    
    if ($d === false) {
        die("Incorrect date string");
    } else {
        echo $d->getTimestamp();
    }

    1222093289


    无论如何,在将字符串解析为结构化数据时严格遵守始终是一个很好的起点。可以省去以后调试的尴尬。因此我建议始终指定日期格式。

    回复
    0
  • 取消回复