Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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输出_Php - Fatal编程技术网

上个月和本年度的PHP输出

上个月和本年度的PHP输出,php,Php,从PHP开始,我试图生成上个月的输出,并给出该月的年份,但是输出非常混乱,可能是因为我是新手 代码: 您可以使用datetime对象或strotime(),然后相应地使用date()或datetime::format()对其进行格式化。DateTime对象或strotime()都可以采用字符串值,如“last month”或“last Monday”,并使用这些日期创建时间戳/日期时间对象 当使用“last month”时,它对应的时间将是一个月前,因此当在2018年10月29日20:58运行此

从PHP开始,我试图生成上个月的输出,并给出该月的年份,但是输出非常混乱,可能是因为我是新手

代码:


您可以使用datetime对象或
strotime()
,然后相应地使用
date()
datetime::format()
对其进行格式化。DateTime对象或
strotime()
都可以采用字符串值,如“last month”或“last Monday”,并使用这些日期创建时间戳/日期时间对象

当使用“last month”时,它对应的时间将是一个月前,因此当在2018年10月29日20:58运行此代码时,将导致datetime对象/时间戳为2018年9月29日20:58

  • 使用
    strotime()

  • 使用日期时间对象

    $date = new DateTime("last month");
    echo $date->format("Y");
    
两者都将输出
2018
,因为截至本答案的最后一个月是2018年9月

看这个

编辑
如果要使用自己的名称而不是月份,请获取月份的数值(1-12),然后使用数组。如果您不为数组编制索引,并让PHP处理它,它将从0开始,而不是从1开始-因此您应该减去1。请注意,如果您正试图使用自己的语言编写月份,请查看而不是
date()
,并完全避免使用数组

$names = array("First - January", "Second - February", "Third - March", "Fourth", "Fifth", "Sixth", "Seventh", "Eight", "Ninth", "Tenth", "Eleventh", "Twelfth");
$month = date("n", strtotime("last month"));

echo $names[$month-1];
这个呢?:)


mktime()
输出UNIX时间戳(自1970年1月1日起的秒数)。您需要使用
date(“m/d/Y”,$timestamp)
以“m/d/Y”格式输出日期。如果我想要的不是上个月,而是上个月之前的前一个月,比如我的示例中的-2,那么您可以改为
strotime(“2个月”)
。如果我想要替换月份的名称,取代Sep的是我自己的名字?我已经尝试了很多东西,但都没有成功。请看我修改后的答案。我想要月份的全名,在我的语言中,我试图使用strftime,但我无法做到这一点。你也可以使用date(“my”,strotime(“2个月”))来,但是如果我想替换月份的名称,代替Sep,我自己取一个名字。最简单的方法是使用带有月索引的数组,并按你喜欢的方式命名:)有任何链接来指导我或什么的吗?看看比我高的一行。Qirel举一个很好的例子:)我认为这是最好的解决方案
echo date("Y", strtotime("last month"));
$date = new DateTime("last month");
echo $date->format("Y");
$names = array("First - January", "Second - February", "Third - March", "Fourth", "Fifth", "Sixth", "Seventh", "Eight", "Ninth", "Tenth", "Eleventh", "Twelfth");
$month = date("n", strtotime("last month"));

echo $names[$month-1];
date("m Y", strtotime("last month"));