Php 日期时间流逝更改名称字符串(当更改为从小时到小时)

Php 日期时间流逝更改名称字符串(当更改为从小时到小时),php,datetime,Php,Datetime,我得到了这个代码片段,你可以看到,我的语言有点不同,然后只是添加了一部分,猜它是什么?是我发现这个代码片段时的地方,所以我现在在IDE上遇到了一个好方法 $string = array( 'y' => 'år', 'm' => 'månad', // månader 'w' => 'vecka', // veckor 'd' => 'dag', // dagar 'h' => 'timme', // tim

我得到了这个代码片段,你可以看到,我的语言有点不同,然后只是添加了一部分,
猜它是什么?
是我发现这个代码片段时的地方,所以我现在在IDE上遇到了一个好方法

    $string = array(
    'y' => 'år',
    'm' => 'månad',  // månader
    'w' => 'vecka',  // veckor
    'd' => 'dag',    // dagar
    'h' => 'timme',  // timmar
    'i' => 'minut',  // minuter
    's' => 'sekund', // sekunder
);
foreach ($string as $k => &$v) {
    if ($diff->$k) {
        $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 'Guess it's somthing here ?' : '');
    } else {
        unset($string[$k]);
    }
}
完整代码在这里

function time_elapsed_string($datetime, $level = 7) {

$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);

$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;

$string = array(
    'y' => 'år',
    'm' => 'månader',
    'w' => 'veckor',
    'd' => 'dagar',
    'h' => 'timme',
    'i' => 'minuter',
    's' => 'sekunder',
);
foreach ($string as $k => &$v) {
    if ($diff->$k) {
        $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
    } else {
        unset($string[$k]);
    }
}

$string = array_slice($string, 0, $level);
return $string ? implode(', ', $string) . ' ago' : 'just now';

}

我已经让它开始工作了,而且还改进了它,以使用未来的日期。如果你打算在一个有很多弯曲的非英语网站上使用它,如果有人觉得有必要,下面是代码

您可以更改为时间\已用时间\字符串(日期,2)=年-月,而不是完整日期

function time_elapsed_string($datetime, $level = 7) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);

$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;

$string = array(
    'y' => 'år',           // year
    'm' => 'månad',        // month
    'w' => 'vecka',        // week
    'd' => 'dag',          // day
    'h' => 'timme',        // hour
    'i' => 'minut',        // minute
    's' => 'sekund',       // second
);
$string2 = array(
    'y' => 'år',           // year
    'm' => 'månader',      // months
    'w' => 'veckor',       // weeks
    'd' => 'dagar',        // days
    'h' => 'timmar',       // hours
    'i' => 'minuter',      // minutes
    's' => 'sekunder',     // seconds
);

foreach ($string as $k => &$v) {
    if ($diff->$k) {
        $v = $diff->$k . ' ' .  ($v =$diff->$k > 1 ? $string2[$k] : '');
    } else {
        unset($string[$k]);
    }
}
// ago, to, just now
string = array_slice($string, 0, $level);
return $string ? implode(', ', $string) . ($diff->invert ? ' sen' : ' tills') : ' precis nu';

}

我已经让它开始工作了,而且还改进了它,以使用未来的日期。如果你打算在一个有很多弯曲的非英语网站上使用它,如果有人觉得有必要,下面是代码

您可以更改为时间\已用时间\字符串(日期,2)=年-月,而不是完整日期

function time_elapsed_string($datetime, $level = 7) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);

$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;

$string = array(
    'y' => 'år',           // year
    'm' => 'månad',        // month
    'w' => 'vecka',        // week
    'd' => 'dag',          // day
    'h' => 'timme',        // hour
    'i' => 'minut',        // minute
    's' => 'sekund',       // second
);
$string2 = array(
    'y' => 'år',           // year
    'm' => 'månader',      // months
    'w' => 'veckor',       // weeks
    'd' => 'dagar',        // days
    'h' => 'timmar',       // hours
    'i' => 'minuter',      // minutes
    's' => 'sekunder',     // seconds
);

foreach ($string as $k => &$v) {
    if ($diff->$k) {
        $v = $diff->$k . ' ' .  ($v =$diff->$k > 1 ? $string2[$k] : '');
    } else {
        unset($string[$k]);
    }
}
// ago, to, just now
string = array_slice($string, 0, $level);
return $string ? implode(', ', $string) . ($diff->invert ? ' sen' : ' tills') : ' precis nu';

}

@prakashtank这只是为了解释,请参阅完整代码。。。他只是把‘猜这是什么?’作为提问……通过添加第二根弯曲的弦,这能作为一种方法吗?我现在的输出是:
1vecka,22timmetimar,4分钟,
使用string2
($diff->$k>1?$string2[$k]:'')
你的函数工作正常
时间('2017-03-07')
将输出
1dagar,12timmes,24分钟,17个sekunders之前的时间。这还不够吗?是的,它现在开始工作了,但在我的语言中弯曲是错误的1达格应该是1达格,如果大于1,则添加弯曲,但无论如何谢谢:)@prakashtank这只是为了解释请参阅完整代码。。。他只是把‘猜这是什么?’作为提问……通过添加第二根弯曲的弦,这能作为一种方法吗?我现在的输出是:
1vecka,22timmetimar,4分钟,
使用string2
($diff->$k>1?$string2[$k]:'')
你的函数工作正常
时间('2017-03-07')
将输出
1dagar,12timmes,24分钟,17个sekunders之前的时间。这还不够吗?是的,现在它开始工作了,但在我的语言中弯曲是错误的1达格应该是1达格,如果大于1,则添加弯曲,但无论如何,谢谢:)