使用PHP以用户友好的格式获取两个日期的差异

时间:2018-10-21 10:40:42

标签: php datetime date-difference

因此,我正在尝试以一种用户友好的方式确定到达约会时间的时间长度。

例如,假设当前日期时间为2018-09-10 12:00:00,最终目标为2019-11-10 12:00:00,我只想回显 1 Year ,或者说它为2018-09-10 13:30:00如果时间少于一分钟,请回声 1小时,只需说1分钟即可。

我真的很难找到任何资源来描述如何轻松地做到这一点,而又不会产生大量if语句。

3 个答案:

答案 0 :(得分:4)

使用DateTime类将日期字符串转换为php对象。然后使用 DateTime::diff()方法来获取两个日期的差值。另外,您还需要检查 --------- beginning of crash E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.android.blue, PID: 6726 java.lang.IllegalArgumentException: Given String is empty or null at com.google.android.gms.common.internal.zzbo.zzcF(Unknown Source:11) at com.google.firebase.auth.PhoneAuthCredential.<init>(Unknown Source:3) at com.google.firebase.auth.PhoneAuthProvider.getCredential(Unknown Source:2) at com.example.android.bluesky.SetupAccount.PelephoneActivity.verifyCode(PelephoneActivity.java:176) at com.example.android.bluesky.SetupAccount.PelephoneActivity.access$900(PelephoneActivity.java:52) at com.example.android.bluesky.SetupAccount.PelephoneActivity$2.onClick(PelephoneActivity.java:150) at android.view.View.performClick(View.java:6597) at android.view.View.performClickInternal(View.java:6574) at android.view.View.access$3100(View.java:778) at android.view.View$PerformClick.run(View.java:25885) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) yearmonthdayhourminute的值以返回预期结果。

second

demo中查看结果

答案 1 :(得分:0)

我强烈建议您使用CarbondiffForHumans metod。通过将所有与日期相关的操作都运用到Carbon,只需使您的生活更轻松。

答案 2 :(得分:0)

实际上,这很容易。如果使用的是SQL,则可以使用DATEDIFF并使用date_format()格式化结果。

如果您只是使用php,则必须在两个日期中创建一个新的DateTime()对象。然后,您应该可以使用DateInterval()减去这两个日期。

例如:

$date1 = new DateTime($your1stDate);
$date2 = new DateTime($your2ndDate);
$result = $date1->diff($date2);
echo date_format($result,'Y-m-d h:m.s'); // or something like that