深入理解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 图片预览效果 推荐
Dec 22 Javascript
能说明你的Javascript技术很烂的五个原因分析
Oct 28 Javascript
关于URL中的特殊符号使用介绍
Nov 03 Javascript
vue.js国际化 vue-i18n插件的使用详解
Jul 07 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
Aug 16 Javascript
vue获取input输入值的问题解决办法
Oct 17 Javascript
JavaScript中为事件指定处理程序的五种方式分析
Jul 27 Javascript
JavaScript常见继承模式实例小结
Jan 11 Javascript
vue中使用props传值的方法
May 08 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
Vue实现数据请求拦截
Oct 23 Javascript
js实现烟花特效
Mar 02 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
常用一些Javascript判断函数
2012/08/14 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
node使用request请求的方法
2019/12/20 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
python实现挑选出来100以内的质数
2015/03/24 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
python实现excel读写数据
2021/03/02 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
python字符串的拼接方法总结
2019/11/18 Python
Python使用xpath实现图片爬取
2020/09/16 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
平面设计师工作职责范文
2013/12/03 职场文书
旷课检讨书1000字
2014/02/14 职场文书
个人承诺书
2014/03/26 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
部门活动策划方案
2014/08/16 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
python利用while求100内的整数和方式
2021/11/07 Python
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
linux下安装redis图文详细步骤
2021/12/04 Redis