将字符串转换为整数,在它之前添加一个零?

时间:2013-08-24 17:03:24

标签: php string numbers type-conversion

我有代表一个月的数据字符串。例如,“00”是1月,“01”是2月,“02”是3月,依此类推。 如何使字符串表示如此“01”是1月,“02”是2月等等,这是一种更简单的方法。我找不到任何PHP功能。

/ * 将cast month键入int,如果少于一位,则添加零并转换为string elseif超过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 个答案:

答案 0 :(得分:1)

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

$month = "00"; // represents January
$month = (int) $month;
$month += 1;
$month = str_pad($month, 2, "0", STR_PAD_LEFT);

答案 1 :(得分:1)

您也可以使用sprintf:

,而不是使用str_pad
$month = "00";
$month = (int) $month;
$month += 1;
$month = sprintf("%02s", $month);

或者,甚至更短:

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

答案 2 :(得分: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";

答案 3 :(得分:0)

不确定这是不是你的意思:

switch($monthString)
{
case "January": $monthInt = "00";
break;
case "Febuary": $monthInt = "01";
break;
case "March": $monthInt = "02";
break;
case "April": $monthInt = "03";
break;
...
}