在PHP中用前导零格式化数字

喜欢而已 提交于 2020-01-08 17:42:30

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我有一个包含值1234567的变量。

我希望它精确地包含8位数字,即01234567

是否有PHP函数呢?


#1楼

sprintf是您所需要的。

在上面链接的页面中,编辑(按某种方式由downvotes请求 ),这里有一个示例“零填充整数”:

<?php
    $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

#2楼

鉴于该值在$ value中:

  • 回显它:

    printf("%08d", $value);

  • 为拿到它,为实现它:

    $formatted_value = sprintf("%08d", $value);

这应该够了吧


#3楼

使用sprintf

sprintf('%08d', 1234567);

另外,您也可以使用str_pad

str_pad($value, 8, '0', STR_PAD_LEFT);

#4楼

简单的答案

$p = 1234567;
$p = sprintf("%08d",$p);

我不确定如何解释“永远不会超过8位”的注释,以及它是指输入还是输出。 如果它引用输出,则必须有一个附加的substr()调用来裁剪字符串。

截断前8位数字

$p = substr(sprintf('%08d', $p),0,8);

截断最后8位数字

$p = substr(sprintf('%08d', $p),-8,8);

#5楼

尽管我不确定自己要做什么,但您可能正在寻找sprintf

这将是:

$value = sprintf( '%08d', 1234567 );
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!