【问题标题】:PHP Convert Date to Messages Such as Yesterday at 2:00pm - Reverse strtotimePHP 将日期转换为消息,例如昨天下午 2:00 - 反向 strtotime
【发布时间】:2011-07-11 17:04:23
【问题描述】:

我正在尝试构建一个函数,该函数采用时间戳并生成基于“相对”字符串的日期,可能是反向 strtotime!

Yesterday at 2pm
Yesterday at 3:15pm
Earlier Today at 9am
Today at 12pm
Today at 12:45pm
Tomorrow at 5pm
Monday at 9pm
Sunday at 12:55am
All dates older than a week:
Thu 7th Jul

我目前有以下代码,想知道如何改进它?它似乎效率不高,并且缺少一些功能。你会添加什么?

  static public function timestampRelativeString($timestamp, $rounding=900) {
    if(!self::isValidTimeStamp($timestamp))
      return "Invalid Timestamp";

    //Round to (default) 15 mins
    $timestamp = floor($timestamp/$rounding)*$rounding;

    //Today
    if($timestamp<mktime(0, 0, 0, date("m"), date("d")-1, date("y")))
      return date("D jS M", $timestamp);
    elseif($timestamp<mktime(23, 59, 59, date("m"), date("d")-1, date("y")))
      return "Today at ".date("G:i", $timestamp);
    elseif($timestamp<time()))
      return "Earlier today at ".date("G:i", $timestamp);
    elseif($timestamp<mktime(23, 59, 59, date("m"), date("d"), date("y")))
      return "Today at ".date("G:i", $timestamp);
    elseif($timestamp<mktime(23, 59, 59, date("m"), date("d")+1, date("y"))) //Tomorrow
      return "Tomorrow at ".date("G:i", $timestamp);
    elseif($timestamp<mktime(23, 59, 59, date("m"), date("d")+7, date("y"))) //Next Week
      return "On ".date("l", $timestamp)." at ".date("G:i", $timestamp);
    else 
      return date("D jS M", $timestamp);
  }

有谁知道已经这样做的脚本?还是很相似?

非常感谢您的宝贵时间,

【问题讨论】:

  • 哇。一个倒转的strtotime,酷。 (+1)

标签: php date timestamp


【解决方案1】:

这有很多名字,包括nicetimePrettyDate。最好的方法是在带有 ID 或标识类的 div/span 中从 PHP 输出实际时间,然后使用 javascript 对客户端进行后处理(然后可以在用户坐在页面上时更新时间) .

无论如何,WRT 回答你的问题,我会看看那里的 prettydate 处理类,它们就像(或完全一样)你在 Facebook、Twitter 等上看到的那些。即使你用 PHP 做,你也可以匹配功能。

【讨论】:

  • 美好时光对我来说有点模棱两可,因此写了这个脚本,感谢有关名称的信息!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
相关资源
最近更新 更多