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