格式化时间
参数: 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>