Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP将一周中的一天转换为unix时间_Php_Date_Strtotime - Fatal编程技术网

用PHP将一周中的一天转换为unix时间

用PHP将一周中的一天转换为unix时间,php,date,strtotime,Php,Date,Strtotime,我正在尝试获取日期字符串的unix时间,其格式如下: 'second sunday of march 2010' 'first sunday of november 2010' 我的印象是strotime可以处理这样的字符串,但显然不能,因为它返回false。当给定一周中的某一天时,我如何转换为unix时间,该天是一个月(即第一天、第二天等)、一个月还是一年。这应该可以通过strotime实现。您可以尝试使用mktime()生成三月第一天的时间戳,并将其添加为第二个参数(在字符串部分只保留“f

我正在尝试获取日期字符串的unix时间,其格式如下:

'second sunday of march 2010'
'first sunday of november 2010'

我的印象是strotime可以处理这样的字符串,但显然不能,因为它返回false。当给定一周中的某一天时,我如何转换为unix时间,该天是一个月(即第一天、第二天等)、一个月还是一年。

这应该可以通过
strotime
实现。您可以尝试使用
mktime()
生成三月第一天的时间戳,并将其添加为第二个参数(在字符串部分只保留“first sunday”):

不确定这将如何处理第一天(3月1日)实际上是一个星期天。一定要查清楚

还有,也许这更可靠,看看吧——海报上说他用以下符号(引用)得到了很好的结果:



与strotime一样,无论您选择什么,都要确保测试良好,尤其是边缘情况(月的第一天是星期天,上月的最后一天是星期天……)

这应该可以通过
strotime
实现。您可以尝试使用
mktime()
生成三月第一天的时间戳,并将其添加为第二个参数(在字符串部分只保留“first sunday”):

不确定这将如何处理第一天(3月1日)实际上是一个星期天。一定要查清楚

还有,也许这更可靠,看看吧——海报上说他用以下符号(引用)得到了很好的结果:



与strotime一样,无论您选择什么,都要确保测试良好,尤其是边缘情况(每月的第一天是星期天,上个月的最后一天是星期天……)

您的代码在PHP5.3.0上适用于我。您使用的是什么版本的PHP

<?php
date_default_timezone_set("Europe/Oslo");
$time_march = strtotime('second sunday of march 2010');
$time_november = strtotime('first sunday of november 2010');
echo date("Y-m-d", $time_march) . " (timestamp: $time_march)\n";
echo date("Y-m-d", $time_november) . " (timestamp: $time_november)\n";
?>

您的代码在PHP5.3.0上适合我。您使用的是什么版本的PHP

<?php
date_default_timezone_set("Europe/Oslo");
$time_march = strtotime('second sunday of march 2010');
$time_november = strtotime('first sunday of november 2010');
echo date("Y-m-d", $time_march) . " (timestamp: $time_march)\n";
echo date("Y-m-d", $time_november) . " (timestamp: $time_november)\n";
?>

你的第一个解决方案很聪明,但我甚至没有尝试,因为你的第二个解决方案很有效。谢谢。你的第一个解决方案很聪明,但我甚至没有尝试,因为你的第二个很好用。谢谢
<?php
date_default_timezone_set("Europe/Oslo");
$time_march = strtotime('second sunday of march 2010');
$time_november = strtotime('first sunday of november 2010');
echo date("Y-m-d", $time_march) . " (timestamp: $time_march)\n";
echo date("Y-m-d", $time_november) . " (timestamp: $time_november)\n";
?>
2010-03-14 (timestamp: 1268521200)
2010-11-07 (timestamp: 1289084400)