javascript - 有没有什么函数给数字加0和去掉0
迷茫
迷茫 2017-04-11 11:41:05
0
10
452

有没有函数可以更优雅的实现给数字前面加0呢?比如

01
02
03
……
07
08
09

给<10的数字前面加0,然后取出来的时候再把0去掉,我主要存取用户的生日年份,取出来在按yyyymmdd这种格式截取,然后再去掉0就可以了,有没有什么函数一部到位的呀?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(10)
刘奇

http://www.w3school.com.cn/ph...

date('j');//一个月中的第几天,不带前导零(1 到 31)
date('d');//一个月中的第几天(从 01 到 31)
data('m');//月份的数字表示(从 01 到 12)
date('n');//月份的数字表示,不带前导零(1 到 12)

如果是数字前自动补0,可以用sprintf
$a = 1;
echo sprintf("%02d", $a);//输出该数字,若十位、个位为空或0,自动补零
$a = '01';
echo sprintf('%d', $a);//去0

迷茫
 a=> ("0" + a).slice(-2)

function addZ(a){
    return ('0' + a).slice(-2);
}
迷茫
'2'.replace(/^(\d)$/,'0$1')
'20160101'.replace(/(\d{4})(\d{4})/,function(a,b,c){return b + c.replace(/0/g,'')})

这样去零20161101和20160111结果一样!

PHPzhong

自定义函数肯定可以做到,
如果是2010-1-1这种格式,想变成2010-01-01 完整可以用时间格式化函数格式化的结果可以是2010-1-1也可以是2010-01-01,完全取决于参数

如果是1想在前面加0,那么就用自定义函数吧

function addzero($value){
    if ($value<10){
        return '0'.$value;
    }
    return $value;
}
巴扎黑

比如你有还有时间格式的string时间,先转换为date类型
再调用date_format格式化一下,如下:

//获取或创建时间
$date = date_create_from_format('Ymd','20160908');
//转换时间,第二个参数详见文档
$str = date_format($date,"Y-n-j");
//输出没有0的结果
echo $str;//2016-9-8

关键参数说明

格式 说明 返回值例子
j 月份中的第几天,没有前导零 1 到 31
n 数字表示的月份,没有前导零 1 到 12

详细说明

php时间格式文档

小葫芦

str_pad()

Ty80

lodash 的pad https://lodash.com/docs/4.17.... 具体实现方式 可以查看源代码

左手右手慢动作

前不久刚看到的一个倒计时idea文章里有对补零操作的探讨,感兴趣的可以看一下
你真的知道怎么用javascript来写一个倒计时吗 ?

PHPzhong

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度

小葫芦

str_pad();
http://php.net/manual/en/func...
解决你的问题

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!