如何在PHP中打印随机月份

如何在PHP中打印随机月份,php,math,Php,Math,PHP中是否有可以打印随机月份的函数 就像穆朗德一样;打印随机数 如果没有,那么打印随机月份的简易方法是什么 我正在使用以下代码: $randmo = mt_rand(1,12); if($randmo == 1) { $randmonth = "Jan"; } elseif($randmo == 2) { $randmonth = "Feb"; } elseif($randmo == 3) { $randmonth = "Mar"; } elseif($randmo =

PHP中是否有可以打印随机月份的函数

就像穆朗德一样;打印随机数

如果没有,那么打印随机月份的简易方法是什么

我正在使用以下代码:

$randmo = mt_rand(1,12);
if($randmo == 1)
{
    $randmonth = "Jan";
}
elseif($randmo == 2)
{
    $randmonth = "Feb";
}
elseif($randmo == 3)
{
    $randmonth = "Mar";
}
elseif($randmo == 4)
{
    $randmonth = "Apr";
}
elseif($randmo == 5)
{
    $randmonth = "May";
}
elseif($randmo == 6)
{
    $randmonth = "Jun";
}
elseif($randmo == 7)
{
    $randmonth = "Jul";
}
elseif($randmo == 8)
{
    $randmonth = "Aug";
}
elseif($randmo == 9)
{
    $randmonth = "Sep";
}
elseif($randmo == 10)
{
    $randmonth = "Oct";
}
elseif($randmo == 11)
{
    $randmonth = "Nov";
}
else
{
    $randmonth = "Dec";
}
echo $randmonth;
首先,我在$randmo变量中存储一个从1到12的兰德编号。并使用if-else打印。
我正在寻找更好的脚本。

你可以这样做
array\u rand()
函数返回数组的随机键

<?php

$months=array('january','february','march','april','may','june','july','august','september','october','november','december');

$key=array_rand($months);

echo $months[$key];

您可以这样做
array\u rand()
函数返回数组的随机键

<?php

$months=array('january','february','march','april','may','june','july','august','september','october','november','december');

$key=array_rand($months);

echo $months[$key];

一年有12个月

$month = mt_rand(1, 12);
有时候,有一种过度思考的倾向。您可以将其与DateTime类相结合,以获得您特别需要的任何内容

好吧,让我们走极端:

function getRandomMonth($fmt = 'abbreviated') {
    $formats = array(
        'abbreviated' => 'M',
        'numeric' => 'n',
        'full' => 'F'
    );

    // Insure we have a valid format
    $fmt = array_key_exists($fmt, $formats) ? $fmt : 'abbreviated';

    $tmp = '2000-' . sprintf('%02s', mt_rand(1, 12)) . '-01';
    $date = new DateTime($tmp);
    return $date->format($formats[$fmt]);
}

echo getRandomMonth() . "\n";
echo getRandomMonth('numeric') . "\n";
echo getRandomMonth('full') . "\n";
一个输出可能是:

Nov
1
October
这当然不会比数组查找更快,但它展示了这种方法如何轻松提供更大的灵活性(长名称与短名称)。更有趣的是,只需对代码进行一些调整,就可以通过使用为您提供不同语言的月份名称,从而获得具有区域设置意识或可国际化的版本


如果您想这样做,您必须更改格式字符串,因为它们需要ISO标准字符串,但这在php手册中有记录。

一年有12个月

$month = mt_rand(1, 12);
有时候,有一种过度思考的倾向。您可以将其与DateTime类相结合,以获得您特别需要的任何内容

好吧,让我们走极端:

function getRandomMonth($fmt = 'abbreviated') {
    $formats = array(
        'abbreviated' => 'M',
        'numeric' => 'n',
        'full' => 'F'
    );

    // Insure we have a valid format
    $fmt = array_key_exists($fmt, $formats) ? $fmt : 'abbreviated';

    $tmp = '2000-' . sprintf('%02s', mt_rand(1, 12)) . '-01';
    $date = new DateTime($tmp);
    return $date->format($formats[$fmt]);
}

echo getRandomMonth() . "\n";
echo getRandomMonth('numeric') . "\n";
echo getRandomMonth('full') . "\n";
一个输出可能是:

Nov
1
October
这当然不会比数组查找更快,但它展示了这种方法如何轻松提供更大的灵活性(长名称与短名称)。更有趣的是,只需对代码进行一些调整,就可以通过使用为您提供不同语言的月份名称,从而获得具有区域设置意识或可国际化的版本


如果您想这样做,您必须更改格式字符串,因为它们需要ISO标准字符串,但php手册中对此进行了说明。

1。用你的2个月制作一个数组。选择一个随机元素3。打印出来。(或者正如一些用户所说:没有build_house();函数,但有工具可以实现它:hammer();)与问题并不真正相关,但您可以选择使用。我喜欢Neel Ion的答案和@Rizier123的注释。如果能有更快捷、更简单的方法,我会更快乐。因为我不想看到服务器响应时间的增加,即使有一堆函数,其成本也可以忽略不计。只有在脚本中执行数千次或更多次时,响应时间才会起作用。避免微观优化思维或决策。您应该只在性能相关指标要求时才考虑这一点,然后才能通过分析应用程序来了解全局。稳定性、功能性和维护应该是您首先关心的问题。1。用你的2个月制作一个数组。选择一个随机元素3。打印出来。(或者正如一些用户所说:没有build_house();函数,但有工具可以实现它:hammer();)与问题并不真正相关,但您可以选择使用。我喜欢Neel Ion的答案和@Rizier123的注释。如果能有更快捷、更简单的方法,我会更快乐。因为我不想看到服务器响应时间的增加,即使有一堆函数,其成本也可以忽略不计。只有在脚本中执行数千次或更多次时,响应时间才会起作用。避免微观优化思维或决策。您应该只在性能相关指标要求时才考虑这一点,然后才能通过分析应用程序来了解全局。稳定性、功能性和维护应该是您首先关心的问题。添加:
if($months[$key]==“may”){echo“是may!!!”;}否则{echo“对不起,还不是may。”;}
Nice$months=array('Jul','Aug','Sep','Oct');$key=array_rand($months);$randmonth=$months[$key];你可以把它放在一个函数中,然后
返回$months[$key]也是。添加:
如果($months[$key]==“may”){echo“是may!!!”;}否则{echo“对不起,还不是may。”;}
Nice$months=array('Jul','Aug','Sep','Oct');$key=array_rand($months);$randmonth=$months[$key];你可以把它放在一个函数中,然后
返回$months[$key]也是。