百度前端技術學院:第二十五天到第二十七天 倒數開始 滴答滴 滴答滴
阿新 • • 發佈:2018-12-09
var year=document.getElementById("year-select");
var month=document.getElementById("month-select");
var day=document.getElementById("day-select");
var hour=document.getElementById("hour-select");
var minute=document.getElementById("minite-select" );
var second=document.getElementById("second-select");
var result=document.getElementById("result-wrapper");
var changeDD = 1;//->一個全域性變數
//初始化為現在時間
function YYYYMMDDstart() {
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
//先給年下拉框賦內容
var y = new Date().getFullYear();
for (var i = (y - 47); i < (y + 21); i++) {//以今年為準,前30年,後30年
year.options.add(new Option(" " + i + " 年", i));
}
//賦月份的下拉框
for (var i = 1; i < 13; i++){
month.options.add(new Option(" " + i + " 月", i));
}
//小時下拉框
for(var i=1;i<=24;i++){
hour.options.add(new Option(i));
}
//分鐘下拉框
for(var i=1;i<=60;i++){
minute.options.add(new Option(i));
}
//秒下拉框
for(var i=1;i<=60;i++){
second.options.add(new Option(i));
}
/* year.value = y;
month.value = new Date().getMonth() + 1;
var n = MonHead[new Date().getMonth()];
if (new Date().getMonth() == 1 && IsPinYear(year.value))
n++;
writeDay(n); //賦日期下拉框
//->賦值給日,為當天日期
day.value = new Date().getDate(); */
}
function writeDay(n) //據條件寫日期的下拉框
{
var e = day;
optionsClear(e);
for (var i = 1; i < (n + 1); i++)
{
e.options.add(new Option(" " + i + " 日", i));
if(i == changeDD){
e.options[i].selected = true; //->保持選中狀態
}
}
console.log(i);
console.log(changeDD);
}
function IsPinYear(year) //判斷是否閏平年
{
return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
}
//改變日下拉框
day.onchange=function DDD(){
changeDD = day.value;
}
function optionsClear(e) {
e.options.length = 1;
}
//年發生變化時日期發生變化(主要是判斷閏平年)
year.onchange=function(){
var MMvalue = month.options[month.selectedIndex].value;
if (MMvalue == "") {
var e = day;
optionsClear(e);
return;
}
var n = MonHead[MMvalue - 1];
if (MMvalue == 2 && IsPinYear(year.value))
n++;
writeDay(n)
}
//月發生變化時日期聯動
month.onchange=function(){
var YYYYvalue = year.options[year.selectedIndex].value;
console.log(YYYYvalue);
if (YYYYvalue == "") {
var e = day;
optionsClear(e);
return;
}
console.log(month.value);
var n = MonHead[month.value - 1];
console.log(n);
if (month.value == 2 && IsPinYear(YYYYvalue)) n++;
writeDay(n)
}
if (document.attachEvent)
window.attachEvent("onload", YYYYMMDDstart);
else
window.addEventListener('load', YYYYMMDDstart, false);
function checkTime(x) {
if (x < 10) {
x = "0" + x;
}
return x;
}
function getTimeSelect(){
var str=year.value+"-"+month.value+"-"+day.value;
var timeSelect=new Date(str);
return year.value+"年"+checkTime(month.value)+"月"+checkTime(day.value)+"日"+getWeekday(timeSelect.getDay())+" "+checkTime(hour.value)+":"+checkTime(minute.value)+":"+checkTime(second.value);
}
function getWeekday(a){
var week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
weekday=week[a];
return weekday;
}
function distance(){
var now=new Date();
var timeSelectStr = year.value + "/" + month.value + "/" + day.value + " " + hour.value + ":" + minute.value +
":" + second.value;
var SelectTime=new Date(timeSelectStr);
var secondDistance=now.getTime()-SelectTime.getTime();
var str;
if (secondDistance < 0) {
secondDistance = -secondDistance;
str = " 還有";
} else {
str = " 已經過去";
}
var daym = secondDistance / 86400000;
var hourm = (secondDistance % 86400000) / 3600000;
var minutem = ((secondDistance % 86400000) % 3600000) / 60000;
var secondm = (((secondDistance % 86400000) % 3600000) % 60000) / 1000;
return str + parseInt(daym) + "天" + parseInt(hourm) + "小時" + parseInt(minutem) + "分" + parseInt(secondm) +
"秒";
}
function showDate(){
result.innerHTML="現在距離"+ getTimeSelect() + distance();
}
setInterval(showDate,1000);