怎样在js里面格式化日期

JavaScript011

怎样在js里面格式化日期,第1张

格式化时间

参数: formatStr 格式化串 y年,m月,d日,h小时,i分钟,s秒钟  缺省值 "y-m-d h:i:s"

fdate 要格式化的时间(时间戳)UTC秒数 缺省值 当前时间

实例: formatDate()  当前时间默认格式 如 2011-4-12 12:51:12

formatDate('y/m/d', 2132132131) 某时间格式为 年月日 如 2010/12/5  

function formatDate(formatStr, fdate)

{

var fTime, fStr = 'ymdhis'

if (!formatStr)

formatStr= "y-m-d h:i:s"

if (fdate)

fTime = new Date(fdate)

else

fTime = new Date()

var formatArr = [

fTime.getFullYear().toString(),

(fTime.getMonth()+1).toString(),

fTime.getDate().toString(),

fTime.getHours().toString(),

fTime.getMinutes().toString(),

fTime.getSeconds().toString()

]

for (var i=0i<formatArr.lengthi++)

{

formatStr = formatStr.replace(fStr.charAt(i), formatArr[i])

}

return formatStr

}

步骤一:将日期转换成我们常用的“yyyy-MM-dd hh:mm:ss”这种格式,我们可以对日期进行获取然后组装,具体代码如下所示:

步骤二:将日期转换成“某年某月某日”这种日期格式,此时我们只需要调用Date类的toLocaleDateString方法即可。

步骤三:直接获取“hh:mm:ss”时间,此时我们只需要调用Date的toLocaleTimeString方法即可。

步骤四:获取“获取"某年某月某日 hh:mm:ss"”这种格式,我们需要调用Date类的toLocaleString方法。

步骤五:调用dateFormat()方法。

6

步骤六:测试。启动项目后,浏览器中输入http://localhost:8080/WebTest/。点击界面上的“日期格式化测试”按钮,查看测试效果。

参考资料

百度经验.搜狗[引用时间2018-5-3]

下面的算法是,2009年的第1周是从第一个星期一开始,就是1月5日。不然2009年的第1周的星期一,会跑到2008年12月去了。

<script>

fun(2008, 30)//2008年的第30周

function fun(year, week) {

var d = new Date(year, 0, 1)

var time = d.getTime()

var t = week * 7 * 24 * 3600 * 1000

time += t

d = new Date(time)

var w = d.getDay()

var d1 = new Date(time - (w - 1) * 24 * 3600 * 1000)

var d2 = new Date(time + ((7 - w) * 24 * 3600 * 1000))

print(d1)

print(d2)

}

function print(d) {

var y = d.getFullYear()

var m = d.getMonth() + 1

m = m <10 ? "0" + m : "" + m

var day = d.getDate()

day = day <10 ? "0" + day : "" + day

var weekDay = d.getDay()

var wk = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]

alert(y + "-" + m + "-" + day + " " + wk[weekDay])

}

</script>

<script>

        //  封装一个函数玩玩

        function inputTwoNum(){

        var x=prompt("输入两个数字用/隔开"),

        //  var aa = new Array()

          y = x.split("/")//将输入框中的两个数转换成数组

        //  aa[0] = y[0],

        //  aa[1] = y[1]

        return y

        }

            function gys(a,b){

                while(Math.abs(a-b)){

                    t = b

                      b = Math.abs(a-b)

                      a = t

                }

                return b

        }

      var x = inputTwoNum()

      var a = Number(x[0]),

          b = Number(x[1])

        document.write(a+"跟"+b+"最大公约数是:"+gys(a,b))

        第一种:for循环比较两个数因素相等的最大值

          var x=prompt("输入两个数字用/隔开")

        var y = x.split("/"),

        a = y[0],

        b = y[1]

        if(a>b){//两个数的公约数不可能大于其中任何一个数,所以从较小的数字循环比较的,加快效率

            t=a

            a=b

            b=t

        }

        for(i=ai>0i--){//因为是最大公约数,所以从大到小计算

              if(a%i==0){//a的约数

                    if(b%i==0){//a的约数=b的约数

                          document.write(a+"跟"+b+"的最大公约数是:"+i) 

                              break           

                    }

              }

              }

    第二种 while循环,取余结果为零时,被取余的那个数即为最大公约数(数学逻辑)

        function gys(a,b){

              var x=a%b

                while(x){

                    a=bb=xx=a%b

                }

                return b

        }

    var x=prompt("输入两个数字用/隔开")

        var y = x.split("/"),

        a = y[0],

        b = y[1]

        document.write(a+"跟"+b+"的最大公约数是:"+gys(a,b))

          第三种 while循环,更相减损法

      function gys(a,b){

            while(Math.abs(a-b)){

                t = b

                  b = Math.abs(a-b)

                  a = t

            }

            return b

    }

    var x=prompt("输入两个数字用/隔开")

        var y = x.split("/"),

        a = y[0],

        b = y[1]

    document.write(a+"跟"+b+"最大公约数是:"+gys(a,b))

        第四种:递归实现

      function gys(a,b){

              var x=a%b   

              if(x==0){

                  return b

              }

              a = b

              b = x

              x = a%b

                return gys(a,b)

        }

    var x=prompt("输入两个数字用/隔开")

        var y = x.split("/"),

        a = y[0],

        b = y[1]

        document.write(a+"跟"+b+"的最大公约数是:"+gys(a,b))

        </script>