深入理解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 相关文章推荐
firefox firebug中文入门教程 脚本之家新年特别版
Jan 02 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
Jun 08 Javascript
JavaScript在多浏览器下for循环的使用方法
Nov 07 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
jquery实现九宫格大转盘抽奖
Nov 13 Javascript
微信小程序 网络请求(GET请求)详解
Nov 16 Javascript
vue源码学习之Object.defineProperty对象属性监听
May 30 Javascript
webpack项目使用eslint建立代码规范实现
May 16 Javascript
vue下载二进制流图片操作
Oct 26 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
Feb 08 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中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
js实现微信聊天界面
2020/08/09 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
python3.0 字典key排序
2008/12/24 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
python实现中文分词FMM算法实例
2015/07/10 Python
python中的随机函数random的用法示例
2018/01/27 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Python创建数字列表的示例
2019/11/28 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
python MD5加密的示例
2020/10/19 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
十岁生日父母答谢词
2014/01/18 职场文书
C++程序员求职信范文
2014/04/14 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
电子工程求职信
2014/07/17 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
毕业实习感受与体会
2015/05/26 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
win10清理dns缓存
2022/04/19 数码科技