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,则添加弯曲,但无论如何,谢谢:)