PHP 在单位数字之前动态添加前导零
PHP - 是否有一种快速、即时的方法来测试单个字符串,然后在前面添加前导零?
例子:
$year = 11;
$month = 4;
$stamp = $year.add_single_zero_if_needed($month); // Imaginary function
echo $stamp; // 1104
PHP - Is there a quick, on-the-fly method to test for a single character string, then prepend a leading zero?
Example:
$year = 11;
$month = 4;
$stamp = $year.add_single_zero_if_needed($month); // Imaginary function
echo $stamp; // 1104
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 sprintf:http://php.net/manual/en/function.sprintf。 php
如果少于所需的字符数,它只会添加零。
编辑:正如 @FelipeAls 所指出的:
在处理数字时,您应该使用
%d
(而不是%s
),尤其是当有数字时是负数的可能性。如果您仅使用正数,则任一选项都可以正常工作。例如:
sprintf("%04s", 10);
返回 0010sprintf("%04s", -10);
返回 0-10其中:
sprintf("%04d", 10);
返回 0010sprintf("%04d", -10);
返回 -010You can use sprintf: http://php.net/manual/en/function.sprintf.php
It will only add the zero if it's less than the required number of characters.
Edit: As pointed out by @FelipeAls:
When working with numbers, you should use
%d
(rather than%s
), especially when there is the potential for negative numbers. If you're only using positive numbers, either option works fine.For example:
sprintf("%04s", 10);
returns 0010sprintf("%04s", -10);
returns 0-10Where as:
sprintf("%04d", 10);
returns 0010sprintf("%04d", -10);
returns -010您可以使用
str_pad
添加 0 的<代码>字符串 str_pad ( 字符串 $input , int $pad_length [, 字符串 $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
You can use
str_pad
for adding 0'sstring str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
字符串格式化的通用工具,
sprintf
:http://php .net/manual/en/function.sprintf.php
The universal tool for string formatting,
sprintf
:http://php.net/manual/en/function.sprintf.php