ホームページ  >  記事  >  php教程  >  WeChat と QQ の時間形式テンプレートの例の詳細な説明

WeChat と QQ の時間形式テンプレートの例の詳細な説明

高洛峰
高洛峰オリジナル
2016-12-09 13:28:211463ブラウズ

コードに直接アクセスしてください。コード内にコメントがあります。

/**
   * 将一个时间戳转换成提示性时间字符串,如
   * 2分钟内 无显示
   * 2分钟-24小时 HH:mm
   * 昨天 昨天 HH:mm
   * 前天 前天 HH:mm
   * 一年内 MM:DD HH:mm
   * 去年 去年 MM:DD HH:mm
   * 前年 前年 MM:DD HH:mm
   * 更远 yyyy:MM:DD HH:mm
   * 毫秒计算
   * @param charttime
   * @return
   */
  public static String convertChatDetailTimeFormat(long charttime) {
  
    long curTime = System.currentTimeMillis() ;
    long time = curTime - charttime;
  
    XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, time + "---时间差" + time/ 1000/ 60 + "分钟");
    XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, curTime + "---当前时间" + format(new Date(curTime), FORMAT_LONG_CN_1));
    XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, charttime + "---chartTime" + format(new Date(charttime), FORMAT_LONG_CN_1));
  
    if (time < 120 * 1000 && time >= 0) {
      return "刚刚";
    } else if (time >= 120 *1000 && time < 3600 * 24 * 1000) {
  
      return format(new Date(charttime), FORMAT_HH_MM);
  
    } else if (time >= 3600 * 24 * 1 * 1000 && time < 3600 * 24 * 2 * 1000) {
  
      return "昨天" + format(new Date(charttime), FORMAT_HH_MM);
  
    } else if (time >= 3600 * 24 * 2 * 1000 && time < 3600 * 24 * 3 * 1000) {
  
      return "前天" + format(new Date(charttime), FORMAT_HH_MM);
    } else if (time >= 3600 * 24 * 3 * 1000 && time < 3600 * 24 * 365 * 1 * 1000) {
  
      return format(new Date(charttime), FORMAT_MM_DD_HH_MM);
    } else if (time >= 3600 * 24 * 365 * 1 * 1000 && time < 3600 * 24 * 365 * 2 * 1000) {
  
      return "去年" + format(new Date(charttime), FORMAT_MM_DD_HH_MM);
    } else if (time >= 3600 * 24 * 365 * 2 * 1000 && time < 3600 * 24 * 365 * 3 * 1000) {
  
      return "前年" + format(new Date(charttime), FORMAT_MM_DD_HH_MM);
    } else if (time >= 3600 * 24 * 365 * 3 * 1000) {
  
      return format(new Date(charttime), FORMAT_LONG_CN_1);
    } else {
      return "刚刚";
    }
  }

ここで小さな問題があります。つまり、自然な日の時間が実際の日の時間にまたがっているということです。昨日の時間が昨日と表示されず、HH:mm と表示される可能性があるため、テストが行​​われました。 24 時間以内の条件を今日中に 2 分以内に変更するよう依頼されました。改 ここの需要を

* 表示なしの2分

* 2分-今日 HH:MM

* 昨日昨日昨日 hh:mm
* 一昨日 hh:mm
* 今年 mm:dd HH:mm
* 去年のMM:DD HH:mm
* 一昨年のMM:DD HH:mm
* さらにyyyy:MM:DD HH:mm


これは大した問題ではない、問題はどうなるかだ大晦日の間? 、2015-01-01 00:01.001 の最初の 3 分間に受信したメッセージ、つまり 2014-12-31 を昨日として表示するか、昨年として表示するかを指定します。受信時間が時間を超えた場合のメッセージの表示方法。


多くの議論の後、最終的に最終的に完成しました。ここで、製品を再度修正し、製品を最終バージョンとして文書化する必要があります。

りー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。