1

我有代表一个月的数据字符串。例如“00”是一月,“01”是二月,“02”是三月等等。如何使字符串表示像这样“01”是一月,“02”是二月等等,这是一种更简单的方法。我找不到任何可以解决问题的 PHP 函数。

/* 将月份类型转换为 int,如果小于一位添加零并转换为字符串,否则如果超过 9(2 位)转换为字符串 */

$month = "00"; // represents January
$month = (int) $month;
$month += 1;

if ($month <= 9){
    $month = str_pad($month, 2, "0", STR_PAD_LEFT);
}
elseif ($month > 9){
    $month = (string) $month; 
}

提前致谢

4

4 回答 4

1

您的方式几乎是最简单的选择,但您不需要检查月份的大小,str_pad 会为您完成。

$month = "00"; // represents January
$month = (int) $month;
$month += 1;
$month = str_pad($month, 2, "0", STR_PAD_LEFT);
于 2013-08-24T17:15:11.007 回答
1

除了使用 str_pad,您还可以使用 sprintf:

$month = "00";
$month = (int) $month;
$month += 1;
$month = sprintf("%02s", $month);

或者,甚至更短:

$month = sprintf("%02s", $month + 1);
于 2013-08-24T17:40:51.527 回答
0

不确定这是否是您的意思:

switch($monthString)
{
case "January": $monthInt = "00";
break;
case "Febuary": $monthInt = "01";
break;
case "March": $monthInt = "02";
break;
case "April": $monthInt = "03";
break;
...
}
于 2013-08-24T23:57:21.067 回答
0

怎么样:

$month = "00"; // represents January

// just increment the string value
// comment out the to display the different months
$month++; 
$month++;
$month++;
$month++;
$month++;
$month++;
$month++;
$month++;
$month++;
$month++;
$month++;
$month++;

// Month = 13 when un-commenting, but should return 01
// $month++;


$month = ($month > 12) ? "01": str_pad($month, 2, "0", STR_PAD_LEFT);

echo "Month: {$month}\n";
于 2013-08-24T17:32:09.567 回答