我有一个日期字符串,比如'2008-09-11‘。我想从中获得一个时间戳,但我需要动态地指定一个时区(而不是PHP默认时区)。
简单地说,我有两个字符串:
$dateStr = '2008-09-11';
$timezone = 'Americas/New_York';我怎么才能得到这个的时间戳?
编辑:当天的时间将是当天的午夜...$dateStr = '2008-09-11 00:00:00';
发布于 2010-08-26 02:24:17
$date = new DateTime($dateStr, new DateTimeZone($timezone));$timestamp = $date->format('U');
发布于 2013-07-31 21:31:59
如果你运行的是PHP > 5.2 (我认为这就是他们添加的DateTime类的版本),那么公认的答案是很棒的。如果你想支持一个旧版本,你不想输入那么多,或者如果你只是喜欢函数式的方法,还有另一种方法也不需要修改全局设置:
$dateStr = '2008-09-11 00:00:00';
$timezone = 'America/New_York';
$dtUtcDate = strtotime($dateStr. ' '. $timezone);发布于 2010-08-26 02:26:44
如果出于某些原因,你使用的是<5.2 (天不允许),这将会起作用。
$reset = date_default_timezone_get();
date_default_timezone_set('America/New_York');
$stamp = strtotime($dateStr);
date_default_timezone_set($reset);但是任何5.2及以上版本,我强烈建议你选择@salathe的答案。
https://stackoverflow.com/questions/3569014
复制相似问题