php获取版本号的相邻版本

发布于 2022-09-12 00:35:32 字数 203 浏览 19 评论 0

假设我当前版本号定义是 1.0.9;下个版本号会是1.1.0;逢十进一.

<?php
$version='1.0.9';

请问如何计算出前一个版本是1.0.8;
后一个版本是1.1.0;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原来是傀儡 2022-09-19 00:35:32
<?php
/**
 * 版本自增/自减
 *
 * @author zhusaidong <zhusaidong@gmail.com>
 */
$currentVersion = '0.1.9';
var_dump(versionUp($currentVersion));//string(5) "0.2.0"
var_dump(versionDown($currentVersion));//string(5) "0.1.8"

function versionUp(string $currentVersion) : string
{
    $currentVersion = str_replace('.', '', $currentVersion);
    
    $version = (int)$currentVersion;
    $version++;
    $version = str_pad($version, strlen($currentVersion), '0', STR_PAD_LEFT);
    $version = substr_replace($version, '.', strlen($version) - 1, 0);  
    $version = substr_replace($version, '.', strlen($version) - 3, 0);
    
    return $version;
}

function versionDown(string $currentVersion) : string
{
    $currentVersion = str_replace('.', '', $currentVersion);
    
    $version = (int)$currentVersion;
    if($version > 1)
    {
        $version--;
    }
    $version = str_pad($version, strlen($currentVersion), '0', STR_PAD_LEFT);
    $version = substr_replace($version, '.', strlen($version) - 1, 0);  
    $version = substr_replace($version, '.', strlen($version) - 3, 0);
    
    return $version;
}
弄潮 2022-09-19 00:35:32

不是有规律吗?

你直接切割成数组处理即可.

$ver = '12.9.9';

$ver = strtr($ver, array('.'=>''));
$newver = $ver+1;  // add 1

echo $newver = substr_replace($newver, '.', strlen($ver)-1,0);
echo '<br />';
echo substr_replace($newver, '.', strlen($ver)-2,0);
exit;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文