代码如下:

参数:

  t: 时间戳, type:返回格式(1:IM界面,其他:会话列表)

function formartTime(t, type) {
var oldtime = new Date(t);
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime(); //今天凌晨
var yestday = new Date(today - 24 * 3600 * 1000).getTime();
var beforeYestday = new Date(today - 24 * 3600 * 1000 * 2).getTime();
var beforeWeek = new Date(today - 24 * 3600 * 1000 * 7).getTime();
var Y = oldtime.getFullYear(); //年份
var M = oldtime.getMonth() + 1; //月份
var d = oldtime.getDate(); //日
var h = oldtime.getHours() % 12 == 0 ? 12 : oldtime.getHours() % 12; //12小时
var H = oldtime.getHours(); //24小时
var m = oldtime.getMinutes(); //分
var w = toWeek(oldtime.getUTCDay()); //星期
var timesolt = toTimeSolt(oldtime.getHours()); //时间段 timeStr = ''; //当天
if (oldtime.getTime() > yestday) {
timeStr = H + ':' + m;
}
//昨天
if (oldtime.getTime() < today && yestday <= oldtime.getTime()) {
timeStr = '昨天 ' + (type == 1 ? H + ':' + m : '');
}
// 一周内
if (oldtime.getTime() < yestday && beforeWeek <= oldtime.getTime()) {
timeStr = w + (type == 1 ? ' ' + H + ':' + m : '');
}
// 一周前
if (oldtime.getTime() < beforeWeek) {
timeStr = type == 1 ? Y + '年' + M + '月' + d + '日 ' + timesolt + ' ' + H + ':' + m : Y + '/' + M + '/' + d;
}
// 比当前时间晚
if (oldtime.getTime() > date.getTime()) {
timeStr = '手动修改';
} // 格式化时间段
function toTimeSolt(h) {
var bt = '';
if (0 <= h && h <= 3)
bt = '凌晨';
if (4 <= h && h <= 8)
bt = '早上';
if (9 <= h && h <= 11)
bt = '上午';
if (12 == h)
bt = '中午';
if (13 <= h && h <= 17)
bt = '下午';
if (18 <= h && h <= 23)
bt = '晚上'; return bt;
} // 格式星期
function toWeek(w) {
var week = '';
switch (w) {
case 0:
week = '星期日';
break;
case 1:
week = '星期一';
break;
case 2:
week = '星期二';
break;
case 3:
week = '星期三';
break;
case 4:
week = '星期四';
break;
case 5:
week = '星期五';
break;
case 6:
week = '星期六';
break;
}
return week;
}
return timeStr;
}

使用:

formartTime('1512230340000', 1)
 
 

[f]聊天的时间格式化的更多相关文章

  1. strftime 日期时间格式化

    strftime() 函数根据区域设置格式化本地时间/日期,函数的功能将时间格式化,或者说格式化一个时间字符串. size_t strftime(char *strDest,size_t maxsiz ...

  2. PHPCMS V9调用时间标签 |日期时间格式化

    PHPCMS V9 如何调用时间标签,下面分享常见的调用时间标签 |日期时间格式化  1.日期时间格式化显示: a标准型:{date('Y-m-d H:i:s', $rs['inputtime'])} ...

  3. Python学习笔记 (2) :字符串输出、操作、格式化和日期、时间格式化

    一.字符串输出及运算 1.常用输出格式及方法 ')#单引号 ")#双引号 """)#三个引号 1234567890 1234567890 1234567890 ...

  4. C# 学习笔记(二) 时间格式化字符串

    1. 以下4种时间格式化符号输出的固定时间格式在各个区域设置中都应是相同的: 标准格式字符串 由 DateTimeFormatInfo.InvariantInfo 属性定义 自定义格式字符串 “O”或 ...

  5. golang 时间戳 时间格式化 获取当前时间 timestamp 计算时间差

    获取当前时间 func Now func Now() Time 1 Now returns the current local time. func (Time) UTC func (t Time) ...

  6. Java 学习 时间格式化(SimpleDateFormat)与历法类(Calendar)用法详解

    基于Android一些时间创建的基本概念 获取当前时间 方式一: Date date = new Date(); Log.e(TAG, "当前时间="+date); 结果: E/T ...

  7. mysql format时间格式化说明

    原文地址为:mysql format时间格式化说明 date_format(datetime,formatting)可以格式日期和时间(例如 YYYY-MM-DD HH:MM:SS)和(HH:MM:S ...

  8. javascript 时间格式化

    添加扩展 //时间格式化扩展Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1 ...

  9. js时间格式化

    const formatDate = timestamp => { const date = new Date(timestamp); const m = date.getMonth() + 1 ...

随机推荐

  1. java 生成随机校验码

    1 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffe ...

  2. usb设备(移动硬盘或U盘),弹出时提示“有进程或程序占用,无法弹出”。解决办法

    测试环境:Win7(其他Windows系统环境,也可参考) 总结办法来源,https://bbs.csdn.net/topics/392297251?page=1文章中热心网友的评论指引 1. 控制面 ...

  3. Java框架spring Boot学习笔记(二):Hello Spring Boot、以及项目属性配置

    新建一个新建一个SpringBootTest工程 新建一个HelloController.java文件 package com.example.demo; import org.springframe ...

  4. 重启虚拟机后dhclient进程未运行解决办法

    问题分析 重启虚拟机后,dhclient进程未运行的根因通常为: 1.NetworkManager未开启自启动导致的dhclient进程未运行 2.网卡设置未纳入NetworkManager管理导致的 ...

  5. 监听端口,获取webService请求报文

    第一步下载我们的wsdl文件到本地 第二步建立一个测试webservice工程,把wsdl放在项目里面 第三步把测试webservice中的wsdlLocation改成localhost.....你的 ...

  6. spring aop做什么介绍

    1.AOP(Aspect Orient Programming),称为面向切面编程,它作为面向对象(OOP)的一种补充,用于处理系统中分布于各个模板的横切关注点,比如事务管理.日志.缓存等.AOP实现 ...

  7. bootstrapTable服务器端分页

    bootstrap table加载:无论是服务器分页还是客户端分页,重新加载表格前请一定先销毁!销毁!销毁!  !!销毁表格:: 客户端分页: 1. 表格销毁 $('#tableID').bootst ...

  8. hbase-连接流程

    root和meta表 在版本0.9.8之前,存在root表,之后的版本中去除了root表,meta表主要记录了每个表在region的分布情况. meta结构 从表格中可以看出,rowkey格式:tab ...

  9. dskinlite(uieasy mfc界面库)使用记录3:绘制动态元素(按钮控件通过隐藏方式修改图片显示)

    效果图: 分别是:正常,正常鼠标悬停,按下,按下鼠标悬停 XML代码: 75,76行定义了一个image,注意id和index属性 初始化代码: click代码: 147,148,153,154:通过 ...

  10. JAVA值类型和引用类型的区别

    java这两种数据类型分别有哪些? java 中的数据类型分为两大类:值类型(基本数据类型)和引用类型(复合数据类型) 一:值类型: 整数类型(byte,short,int,long)     浮点类 ...