深入理解MVC中的时间js格式化


Posted in Javascript onMay 19, 2016

记录下我遇到的一个,MVC中post请求返回一个JSON字符串,其中包含数据库中的时间格式(如:/Date(10000000000)/),不知道怎么处理。

百度的方法都不适用,经自己研究,做成了一个Jquery插件,希望对大家有所帮助。

插件源代码:

(function ($) {
/格式化JSON返回的日期类型为自己定义的格式:如:yyyy-MM-dd hh:mm:ss
dtstr:JSON返回的日期"/Date(10000000000)/"
* fmt:自定义的格式,如:yyyy-MM-dd hh:mm:ss
/
$.Format = function (dtstr,fmt) {
var date = $.ToDateTime(dtstr);
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"H+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
/
格式化JSON返回日期类型LONG转日期
dtstr:JSON返回日期“/Date(10000000000)/”
/
$.ToDateTime = function (dtstr) {
//1900-01-01T00:00:00
if ((dtstr + '').indexOf('Date(') >= 0) {
var ldate = +(dtstr + '').replace('/Date(', '').replace(')/', '');
if (ldate > 0) { return new Date(ldate); }
}
else {
var str = (dtstr + '').replace(/-/g, "/").replace(/T/g, " ");
if (str.split('.')[0] == '1900/01/01 00:00:00') {
return null;
}
else if ((dtstr + '').length > 0) {
return new Date(str.split('.')[0]);
}
}
return null;
}
/
格式化JSON返回日期类型LONG转指定格式字符串:2015-01-01 12:59:59
title:日期类型名称“发布时间”
dtstr:JSON返回日期“/Date(10000000000)/”
substrstart:字符串开始截断位置“5”
/
$.ToDateTimeString = function (title, dtstr, substrstart) {
var dt = toDateTime(dtstr);
if (dt) {
var y = dt.getFullYear();
var m = dt.getMonth() + 1;
var d = dt.getDate();
var h = dt.getHours();
var i = dt.getHours();
var s = dt.getHours();
var datestr = y + "-" + (m < 10 ? "0" : "") + m + "-" + (dt.getDate() < 10 ? "0" : "") + dt.getDate() + " " + (dt.getHours() < 10 ? "0" : "") + dt.getHours() + ":" + (dt.getMinutes() < 10 ? "0" : "") + dt.getMinutes() + ":" + (dt.getSeconds() < 10 ? "0" : "") + dt.getSeconds();
return title + datestr.substr(substrstart);
}
return "";
}
/
格式化JSON返回日期类型
说明:LONG类型日期转指定格式字符串,求日期时间差,并追加至指定集合:2015-01-01 12:59:59
htmls:目标集合
title:日期类型名称“发布时间”
dtstr:JSON返回日期“/Date(10000000000)/”
dtstr01:JSON返回日期“/Date(10000000000)/”时间差结束日期1
dtstr02:JSON返回日期“/Date(10000000000)/”时间差结束日期2 如果为空 取1
substrstart:字符串开始截断位置“5”
*/
$.ToDateTimeDiffString = function (htmls, title, dtstr, dtstr01, dtstr02, substrstart) {
var dtstrs = toDateTimeString("", dtstr, substrstart);
if (dtstrs) {
var dt1 = toDateTime(dtstr);
var dt2 = toDateTime(dtstr01);
var dt3 = toDateTime(dtstr02);
if (dt3) { dt2 = dt3; }
var tstime = dt1 - dt2;
var m = Math.floor(tstime / 1000 / 60, 0);
var s = Math.ceil(tstime / 1000 % 60);
htmls.push('' + title + (m > 0 ? m + "分" : "") + (s > 0 ? s + "秒" : "") + " " + dtstrs + '');
}
}
})(jQuery);
时间格式化jquery 插件

使用方法

1.引用上面的jquery插件

2.格式化时间:

$.post("/tigger/GetUserPrizeLog?t=" + Math.random(), { activityCode: 1138, myOpenId: "@WorkContext.WxUserInfo.OpenId" }, function (json) {
      var str = "";
      $.each(json.Body, function (i, model) {
        str += "<li>";
        str += " <p class=\"title\">" + model.ActivityPrizeName + "</p>";
        str += "<p class=\"time\">" + $.Format(model.CreateTime, "yyyy-MM-dd hh:mm") + "</p>";
        str += "<span class=\"get\" onclick=\"javascript:ShowPrize('" + model.ActivityPrizeName + "')\"></span>";
        str += "</li>";
      });
      $("#record ul").html(str);
    });

model.CreateTime 是从服务器获取的时间

使用方法:

$.Format(model.CreateTime, "yyyy-MM-dd hh:mm")

以上这篇深入理解MVC中的时间js格式化就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中巧用“闭包”实现程序的暂停执行功能
Apr 04 Javascript
js创建子窗口并且回传值示例代码
Jul 02 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
Jul 09 Javascript
JS批量操作CSS属性详细解析
Dec 16 Javascript
table insertRow、deleteRow定义和用法总结
May 14 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
May 09 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
Node.js+Express配置入门教程详解
May 19 #Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 #Javascript
基于jQuery的Web上传插件Uploadify使用示例
May 19 #Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
May 19 #Javascript
当jquery ajax遇上401请求的解决方法
May 19 #Javascript
基于Echarts 3.19 制作常用的图形(非静态)
May 19 #Javascript
前端js文件合并的三种方式推荐
May 19 #Javascript
You might like
PHP完整的日历类(CLASS)
2006/11/27 PHP
PHP与SQL注入攻击[三]
2007/04/17 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
Firefox outerHTML实现代码
2009/06/04 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
jQuery 表格工具集
2010/04/25 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
python打开windows应用程序的实例
2019/06/28 Python
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
先进党支部事迹材料
2014/01/13 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
老人与海读书笔记
2015/06/26 职场文书
护理工作心得体会
2016/01/22 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server
python tqdm用法及实例详解
2021/06/16 Python
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers