首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在PHP中将string 14转换为2014

是否可以在PHP中将string 14转换为2014
EN

Stack Overflow用户
提问于 2014-07-22 14:51:37
回答 3查看 124关注 0票数 0

我有一个由字符串(2014/15年度)组成的数组:

代码语言:javascript
运行
复制
$arr = explode("/", $Years, 2);

..and然后是两个字符串:

代码语言:javascript
运行
复制
$frstHalfYear = $arr[0];
$secHalfYear = $arr[1];

..the输出如下:

代码语言:javascript
运行
复制
for $frstHalfYear: 2014
for $secHalfYear: 15

我的问题是:是否有可能将15转换成像2014这样的整年。这是:

代码语言:javascript
运行
复制
date("Y", strtotime($secHalfYear))

显然不起作用。简单的方法是在字符串的开头添加20,但我想知道是否有更通用的方法。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-22 14:55:38

下面是我能想到的最通用的解决方案:

代码语言:javascript
运行
复制
$secHalfYear = substr($frstHalfYear,0,-strlen($secHalfYear)).$secHalfYear;

基本上,这将从2014中获取2014,并将其放在15之前以生成2015

它甚至支持2099/100格式!但是更重要的是,您可以编写2014/2015,它也会工作得很好。

票数 5
EN

Stack Overflow用户

发布于 2014-07-22 15:38:05

如果你想要完全过头的东西:http://ideone.com/LzcgA3

代码语言:javascript
运行
复制
var_dump(getDates('2014/15'));
var_dump(getDates('1999/12'));
var_dump(getDates('14/15'));


function getDates($dateRange) {
    $exp = explode('/', $dateRange);

    $startYear = $exp[0];
    // Cater for 14/15
    if ($startYear < 100) $startYear += date('Y') - date('y');

    $endYear = $exp[1];

    // If passed the full year, just use that
    if ($endYear < 100) {
        $shortStartYear = substr($startYear, 2, 2);
        if ($shortStartYear > $endYear) {
            // Jumping millenium
            $endYear += $startYear - $shortStartYear + 100;
        } else {
            // Same millenium
            $endYear += $startYear - $shortStartYear;
        }
    }

    return array('from'=>$startYear, 'to'=>$endYear);
}

这实际上能满足大多数约会的需要。但要明白,如果有点过分的话;)

票数 1
EN

Stack Overflow用户

发布于 2014-07-22 15:07:29

代码语言:javascript
运行
复制
$secHalfYear = $frstHalfYear + 1;

你必须做出某些假设才能适当地扩展一个日期,但我相信我从未见过这样的年份显示,而第二年却没有直接跟随第一年。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24890674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档