タイムスタンプ-PHP:過去の時間/日を数える
ここにこの形式のタイムスタンプがあります: たとえば、タイムスタンプが2 minutesより古い場合、 2019-05-21 19:57:21
ここで、このタイムスタンプから過去の時間/日を表示したいと思います。
を出力したいと思います。 >。 59 minutes
2 minutes
知っていることから、それは数時間でなければなりません。したがって、たとえば 59 hours の後は、
1 hour
になります。
これは私が自分でやったことです。どうすればこれを完了できるかわかりません:
更新:
答えの助けを借りて、私はこれを理解しました。奇妙なことに、議事録は完全に間違っていて、逆行しています。つまり、20分前は35分でしたが、現在は15分です。とても奇妙な.... 24 hours に到達すると、
1 day 、
2 days
と表示されます。 1週間後、 1 week が出力されます(数年は経過します)。
$ timestamp ='2019-05-21 19:57:21';
関数calculate_notification_time($ Notification_time){
$ now = new DateTime(date('Y-m-d H:i:s'));
$ past = new DateTime($ Notification_time);
$ dt = $ now-> diff($ past);
error_log(print_r($ now、true));
if($ dt-> y> 0){
$ number = $ dt-> y;
$ unit ='Jahr';
} else if($ dt-> m> 0){
$ number = $ dt-> m;
$ unit ='Monat';
} else if($ dt-> d> 0){
$ number = $ dt-> d;
$ unit='タグ';
} else if($ dt-> h> 0){
$ number = $ dt-> h;
$ unit='スタンデ';
} else if($ dt-> i> 0){
$ number = $ dt-> i;
$ unit='分';
} else if($ dt-> s> 0){
$ number = $ dt-> s;
$ unit ='einigen Sekunden';
}
if(!empty($ unit)&&!empty($ number)&& $ number> 1){
スイッチ($ unit){
ケース'Jahr':
$unit。='en';
壊す;
ケース'Monat':
$unit。='en';
壊す;
ケース'タグ':
$unit。='en';
壊す;
ケース「スタンデ」:
$unit。='n';
壊す;
ケース「分」:
$unit。='n';
壊す;
デフォルト:
壊す;
}
$numberを返します。 ''。 $ unit;
}
'ZeitnichtVerfügbar'を返します。
}
答え :
解決策: $timestamp = '2019-05-21 11:49:21';
$unixTimestampS = strtotime($timestamp);
$dNow = strtotime("now");
$diff = $dNow- $unixTimestampS;
if($diff <60) {
$result = $diff. ' seconds ago'; // When it's not 1 minute
} elseif (($dNow- $unixTimestampS) > 60 && ($dNow- $unixTimestampS) < 3600) {
$result = $diff . ' minute ago'; // For example: 19 minutes
}
echo $result;
またはより良いアプローチがここに記載されています
PHPで時差を分単位で取得する方法
$timestamp = '2019-05-21 11:49:21';
$unixTimestampS = strtotime($timestamp);
$dNow = strtotime("now");
$diff = $dNow- $unixTimestampS;
if($diff <60) {
$result = $diff. ' seconds ago'; // When it's not 1 minute
} elseif (($dNow- $unixTimestampS) > 60 && ($dNow- $unixTimestampS) < 3600) {
$result = $diff . ' minute ago'; // For example: 19 minutes
}
echo $result;
またはより良いアプローチがここに記載されています
PHPで時差を分単位で取得する方法
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。