`

格式化时间js通用类,还有一个秘密(overflow:scroll属性)

阅读更多
/** 
*功能:dwr 时间显示挺无奈的,思考一下之后吗,写了格式化时间 
*示例:DateUtil.Convert("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 "); 
*返回:2010/01/26 QQ:962589149 
*/ 
//定义一个类
function DateUtil(){};//空的构造函数
DateUtil.prototype.Convert=function(fmt,date)
{
var result,d,arr_d;
    var patrn_now_1=/^y{4}-M{2}-d{2}\sh{2}:m{2}:s{2}$/;  
    var patrn_now_11=/^y{4}-M{1,2}-d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;
    var patrn_now_2=/^y{4}\/M{2}\/d{2}\sh{2}:m{2}:s{2}$/;  
    var patrn_now_22=/^y{4}\/M{1,2}\/d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;
    var patrn_now_3=/^y{4}年M{2}月d{2}日\sh{2}时m{2}分s{2}秒$/;  
    var patrn_now_33=/^y{4}年M{1,2}月d{1,2}日\sh{1,2}时m{1,2}分s{1,2}秒$/;
    var patrn_date_1=/^y{4}-M{2}-d{2}$/;  
    var patrn_date_11=/^y{4}-M{1,2}-d{1,2}$/;
    var patrn_date_2=/^y{4}\/M{2}\/d{2}$/;
    var patrn_date_22=/^y{4}\/M{1,2}\/d{1,2}$/;
    var patrn_date_3=/^y{4}年M{2}月d{2}日$/;  
    var patrn_date_33=/^y{4}年M{1,2}月d{1,2}日$/;
    var patrn_time_1=/^h{2}:m{2}:s{2}$/;  
    var patrn_time_11=/^h{1,2}:m{1,2}:s{1,2}$/;  
    var patrn_time_2=/^h{2}时m{2}分s{2}秒$/;  
    var patrn_time_22=/^h{1,2}时m{1,2}分s{1,2}秒$/;
    if(!fmt){fmt="yyyy/MM/dd hh:mm:ss";}  
    if(date){  
        d=new Date(date);  
        if(isNaN(d)){  
            alert("参数非法!");
            return;}  
    }else{  
        d=new Date();  
    }
    if(patrn_now_1.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_now_11.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_now_2.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_now_22.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_now_3.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";  
    }  
    else if(patrn_now_33.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";  
    }  
      
    else if(patrn_date_1.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;  
    }  
    else if(patrn_date_11.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;  
    }  
    else if(patrn_date_2.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;  
    }  
    else if(patrn_date_22.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;  
    }  
    else if(patrn_date_3.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";  
    }  
    else if(patrn_date_33.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";  
    }  
    else if(patrn_time_1.test(fmt)){  
        arr_d=splitDate(d,true);  
        result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_time_11.test(fmt)){  
        arr_d=splitDate(d);  
        result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_time_2.test(fmt)){  
        arr_d=splitDate(d,true);  
        result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";  
    }  
    else if(patrn_time_22.test(fmt)){   d
        arr_d=splitDate(d);  
        result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";  
    }  
    else{  
        alert("没有匹配的时间格式!");  
        return;  
    }
alert(result);
   return result;  
  
}
function splitDate(d,isZero){  
    var yyyy,MM,dd,hh,mm,ss;  
    if(isZero){  
         yyyy=d.getYear();  
         MM=(d.getMonth()+1)<10?"0"+(d.getMonth()+1):d.getMonth()+1;  
         dd=d.getDate()<10?"0"+d.getDate():d.getDate();  
         hh=d.getHours()<10?"0"+d.getHours():d.getHours();  
         mm=d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes();  
         ss=d.getSeconds()<10?"0"+d.getSeconds():d.getSeconds();  
    }else{  
         yyyy=d.getYear();  
         MM=d.getMonth()+1;  
         dd=d.getDate();  
         hh=d.getHours();  
         mm=d.getMinutes();  
         ss=d.getSeconds();    
    }  
    return {"yyyy":yyyy,"MM":MM,"dd":dd,"hh":hh,"mm":mm,"ss":ss};    
}  

直接导入js就行,然后再html 调用了
function convertDate()
{
var dataformat=new DateUtil();
dataformat.Convert("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006"); 
}
呵呵,简单不,假如有什么不懂的,互相学习与请教!QQ:962589149
分享到:
评论
2 楼 yanmingeye 2012-04-11  
谢谢了,IT 哥们!
1 楼 xyztony1985 2010-01-27  
有点复杂,这是网上找的代码,用着挺好,参考下。
/*
* 时间对象的格式化;
eg: alert((new Date()).format("yyyy年MM月dd日hh小时mm分ss秒"));
*/
Date.prototype.format = function(format)
{
    var o = {
        "M+" :  this.getMonth()+1,  //month
        "d+" :  this.getDate(),     //day
        "h+" :  this.getHours(),    //hour
        "m+" :  this.getMinutes(),  //minute
        "s+" :  this.getSeconds(), //second
        "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
        "S"  :  this.getMilliseconds() //millisecond
    };
    if(/(y+)/.test(format)) 
    {
        format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    for(var k in o) 
    {
        if(new RegExp("("+ k +")").test(format)) 
        {
            format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
        }
    }
    return format;
}

相关推荐

    解决页面使用overflow: scroll在iOS上滑动卡顿的问题1

    描述中提到的“故事背景”是一个开发者在开发过程中遇到的问题,他们使用了`overflow: scroll`来创建可滚动的内容区域,但在iOS设备上,滚动体验并不理想,出现了卡顿。作者希望通过分享解决办法来总结经验。 标签...

    详解overflow-scrolling解决滚动卡顿问题

    如果你对某个div或模块使用了overflow: scroll属性,在iOS系统的手机上浏览时,则会出现明显的卡顿现象。但是在android系统的手机上则不会出现该问题。 解决方法 以下代码可解决这种卡顿的问题:-webkit-overflow-...

    css 设置overflow:scroll 滚动条的样式

    css 设置overflow:scroll 滚动条的样式 /* 定义滚动条样式 */ ::-webkit-scrollbar { width: 6px; height: 6px; background-color: rgba(240, 240, 240, 1); } /*定义滚动条轨道 内阴影+圆角*/ ::-webkit-...

    CSS中overflow:scroll怎么设置只上下滚动而不左右滚动

    `overflow: scroll`是一个常见的值,它指示浏览器在内容超出元素边界时显示滚动条,允许用户通过滚动查看全部内容。然而,`overflow: scroll`默认情况下会在两个方向(水平和垂直)上启用滚动条。 如果你只想让元素...

    全面阐述overflowhidden属性

    - 当设置一个元素的 `overflow` 为 `hidden` 时,如果该元素是块级元素,则会隐式地创建一个新的块格式化上下文(BFC)。这意味着元素内部的浮动元素和其他元素不会影响外部元素的布局。 - 使用 `overflow: hidden...

    移动webview 支持overflow:auto

    移动版游戏器不支持overflow:auto,即多余内容隐藏,并能通过手指拉动来滚动内容。目前有很多模拟这种效果的js库,如iScroll。但经项目测试,iscroll在很多浏览器中有明显的性能...一怒之下写了这个库,性能刚刚的。

    css使用overflow属性控制滚动条的样式

    滚动条样式主要涉及到如下overflow属性: ...以上三个属性设置的值为visible、scroll、hidden、auto visible 默认值。使用该值时,无论设置的width和height的值是多少,其中的内容无论是否超出范围都将被

    overflow: hidden; 如何隐藏上面部分

    在网页布局设计中,合理利用CSS属性可以有效控制页面元素的显示效果,其中`overflow`属性就是一个非常实用的例子。本文将详细介绍如何通过设置`overflow: hidden;`来隐藏元素的一部分,特别是如何隐藏元素的上半部分...

    css中position:relative和overflow:hidden之间的问题

    这样做虽然看起来有些反直觉,但实际上是利用了IE6和IE7的一个特性:当父元素也具有相对定位时,这些浏览器的渲染引擎会更好地处理`overflow:hidden`。这样,即使子元素是相对定位,父元素也能正确地裁剪其超出部分...

    Overflow scroll-crx插件

    在默认情况下,如果一个元素的内容超出了其设定的宽度或高度,浏览器会根据"overflow"属性来决定如何处理这些超出的内容。"overflow: hidden"意味着隐藏超出的元素,不显示滚动条;而"overflow: scroll"则会在必要时...

    ie7中overflow:auto无效的解决方法

    产生原因当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:auto属性就会失效。 解决办法解决这个bug很简单,在父元素中使用position:relative;即可解决该bug。 代码bug重现 ...

    overflow属性的使用小例子

    在网页设计中,`overflow` 属性是一个至关重要的CSS(层叠样式表)特性,它主要用于处理元素内容超出其容器时的行为。这个属性允许我们控制当元素内容超过其指定宽度或高度时,如何显示或者隐藏那些溢出的内容。在本...

    html,小程序scroll-view去除滚动条

    子盒子添加内容溢出滚动条显示属性 overflow-y:scroll 并设置好宽高 可实现隐藏滚动条也可是滚轮触发滑动,使用此方法 无法监听window的滚动条事件。 代码示例: .box{ width:300px; height: 400px; overflow: ...

    harmonyos2-33-js-conceptos::scroll:每个JavaScript开发人员都应该知道的33个概念

    这不是一项要求,而是未来学习的指南。 它基于作者撰写的文章,您可以阅读它。 社区 您可以通过添加指向您自己的摘要或评论的链接来提交 PR。 如果您想将存储库翻译成您的母语,请随时这样做。 此 repo 的所有翻译将...

    使用overflow: hidden来禁用页面滚动条

    `overflow`属性是CSS中的一个基本属性,它可以控制当内容超出元素框时如何处理内容。`overflow`属性有四个可能的值: 1. `visible`:默认值,超出的内容会显示出来。 2. `hidden`:超出的内容会被裁剪,且不会提供...

    Marquee Scroll通用不间断滚动JS封装类

    Marquee Scroll通用不间断滚动JS封装类...总的来说,Marquee Scroll通用不间断滚动JS封装类是一个用于实现网页元素自动滚动的高效工具,通过合理封装和配置,开发者可以轻松地在项目中应用各种滚动效果,提高开发效率。

    javascript-programming::ledger::scroll::input_numbers:这是JavaScript(JS)编程的存储库。 包括JS编程范例,事件,JSON,ES6,AJAX,Node.js,jQuery,设计模式,DOM和BOM

    这是JavaScript(JS)编程的存储库 :ledger: :scroll: :input_numbers: 我为我JavaScript全栈开发学习创建了此存储库。 :backpack: 前提条件和存储库 :books: : 良好的英语领域; 编程逻辑; 编程范例; HTML...

    解决IE6,IE7不能隐藏(overflow:hidden)绝对定位溢出的内容

    令人蛋疼的IE,IE6/IE7下父元素有相对/绝对定位时,子元素在IE6和IE7下overflow:hidden;失效。 情况一:(在parent上增加position:relative) 复制代码代码如下: &lt;style type=”text/css”&gt; .parent{ width:...

    IE8 css overflow:hidden不起作用

    在内容描述中提到,为了在IE8中达到类似`overflow:hidden`的效果,需要添加样式`display:inline-block`以及设置一个具体的高度值。这种变通方法之所以可行,是因为`inline-block`属性使元素表现为内联块级元素,这样...

Global site tag (gtag.js) - Google Analytics