深入理解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 相关文章推荐
jQuery Ajax文件上传(php)
Jun 16 Javascript
基于jquery的仿百度搜索框效果代码
Apr 11 Javascript
javascript中获取下个月一号,是星期几
Jun 01 Javascript
实现React单页应用的方法详解
Aug 02 Javascript
Angular2 环境配置详细介绍
Sep 21 Javascript
jQuery之动画效果大全
Nov 09 Javascript
Bootstrap CSS组件之导航(nav)
Dec 17 Javascript
分析JavaScript数组操作难点
Dec 18 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
javascript触发模拟鼠标点击事件
Jun 26 Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 03 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 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图片上传程序
2008/03/27 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
php include类文件超时问题处理
2015/02/06 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Python循环语句之break与continue的用法
2015/10/14 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
Python shelve模块实现解析
2019/08/28 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
小溪流的歌教学反思
2014/02/13 职场文书
素质教育标语
2014/06/27 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
Go语言基础知识点介绍
2021/07/04 Golang
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL