如何在PHP中将日期转换为时间戳?

2022-08-30 05:57:58

如何从中获取时间戳?22-09-2008


答案 1


此方法适用于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。(与“格林威治标准时间”相同。

$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


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


答案 2

还有一个 strptime() 它只要求一种格式:

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);

推荐