PHP strtotime EST来回转换
在最短的时间内,我设置了:PHP strtotime EST来回转换,php,datetime,date,strtotime,Php,Datetime,Date,Strtotime,在最短的时间内,我设置了: date_default_timezone_set("America/New_York"); 当页面加载时,我通过以下方式获得最短时间: $time = time(); 问题是当我在时间戳和日期时间格式之间来回转换字符串时: 10/31/2012 7:30pm 1351729800 | 10/31/2012, 8:30 pm 11/2/2012 7:30pm 1351902600 | 11/02/2012, 8:30 pm 11/3/2012 8:00pm 135
date_default_timezone_set("America/New_York");
当页面加载时,我通过以下方式获得最短时间:
$time = time();
问题是当我在时间戳和日期时间格式之间来回转换字符串时:
10/31/2012 7:30pm 1351729800 | 10/31/2012, 8:30 pm
11/2/2012 7:30pm 1351902600 | 11/02/2012, 8:30 pm
11/3/2012 8:00pm 1351990800 | 11/03/2012, 9:00 pm
11/7/2012 8:00pm 1352336400 | 11/07/2012, 8:00 pm
11/9/2012 8:00pm 1352509200 | 11/09/2012, 8:00 pm
11/10/2012 8:00pm 1352595600 | 11/10/2012, 8:00 pm
我希望这些日期和时间是一样的
第一部分(在“|”)只是字符串,例如“10/31/2012 7:30pm”和strotime(“10/31/2012 7:30pm EST”)
节(在“|”)是上一个strotime()值的日期()
如何将字符串转换为时间(strotime)并再次检查返回的日期格式是否与字符串输入相同
谢谢我想说这是因为目前纽约是夏令时——美国东部夏令时,而不是美国东部夏令时。这会影响这样的事情:
date_default_timezone_set("America/New_York");
strtotime("10/31/2012 7:30pm"); // translates to "Wed, 31 Oct 2012 19:30:00 -0400"
strtotime("10/31/2012 7:30pm EDT"); // translates to "Wed, 31 Oct 2012 19:30:00 -0400"
strtotime("10/31/2012 7:30pm EST"); // translates to "Wed, 31 Oct 2012 20:30:00 -0400"
快速修复方法可能是不将时区添加到字符串中,strotime()
将使用您设置的正确默认时区
通过使用DateTime
函数,您可以更准确地了解日期的解析方式:
$date = DateTime::createFromFormat('m/d/Y g:ia', "10/31/2012 7:30pm");
echo $date->format('U');
或者,如果你等到11月,问题就会自行解决:-)我会说,这是因为目前纽约是夏令时——美国东部夏令时,而不是美国东部夏令时。这会影响这样的事情:
date_default_timezone_set("America/New_York");
strtotime("10/31/2012 7:30pm"); // translates to "Wed, 31 Oct 2012 19:30:00 -0400"
strtotime("10/31/2012 7:30pm EDT"); // translates to "Wed, 31 Oct 2012 19:30:00 -0400"
strtotime("10/31/2012 7:30pm EST"); // translates to "Wed, 31 Oct 2012 20:30:00 -0400"
快速修复方法可能是不将时区添加到字符串中,strotime()
将使用您设置的正确默认时区
通过使用DateTime
函数,您可以更准确地了解日期的解析方式:
$date = DateTime::createFromFormat('m/d/Y g:ia', "10/31/2012 7:30pm");
echo $date->format('U');
或者,如果您等到11月,问题就会自行解决:-)有时您需要在PHP脚本中设置并忘记一个时间,移动到新的服务器可能会改变您的辛苦工作。例如,如果您使用字符串对时间进行日期处理,请将您的时区代码添加到字符串中,就像使用夏令时的New Yourk:“EDT”
echo日期('g:ia',strottime('10:59 EDT');//上午10:59
或者,如果您想提取特定时间的秒数,比如说10:59 pm,请使用以下方法:
echo gmdate('g:IA',标准时间('1970年1月1日格林尼治时间晚上10:59))//82740秒
//转换为晚上10:59
后者将以秒为单位为您提供(12+10小时(*60)和59分钟)*60,gmdate函数将从您传递给函数的任何秒数回显GMT时间。。如果你改为尝试约会,你很可能得不到10:59,除非你生活在格林威治标准时间(格林威治标准时间)
这个时区的东西可能会让人非常困惑,所以在制定一个非常具体的计划时,要非常小心,把它弄得乱七八糟。比如把某人的时间转换成你的时间等等。有时候你需要在PHP脚本中设置并忘记一个时间,然后移动到一个新的服务器可能会改变你的辛苦工作。例如,如果您使用字符串对时间进行日期处理,请将您的时区代码添加到字符串中,就像使用夏令时的New Yourk:“EDT”
echo日期('g:ia',strottime('10:59 EDT');//上午10:59
或者,如果您想提取特定时间的秒数,比如说10:59 pm,请使用以下方法:
echo gmdate('g:IA',标准时间('1970年1月1日格林尼治时间晚上10:59))//82740秒
//转换为晚上10:59
后者将以秒为单位为您提供(12+10小时(*60)和59分钟)*60,gmdate函数将从您传递给函数的任何秒数回显GMT时间。。如果你改为尝试约会,你很可能得不到10:59,除非你生活在格林威治标准时间(格林威治标准时间)
这个时区的东西可能会让人非常困惑,所以在制定一个非常具体的计划时,要非常小心,把它弄得乱七八糟。比如把某人的时间转换成你的时间等等。你真的应该发布生成这个时间的代码!你真的应该发布生成这个的代码!