본문 바로가기

기록/수업정리_javascr

내장객체 (날짜정보)

내장객체 : 브라우저의 자바스크립트 엔진에 내장된 객체를 말하며, 필요한 경우 객체를 생성해 사용할 수 있다. 낸장객체로는 문자, 날짜, 배열, 수학, 정규표현객체 등이 있다.

 

날짜 정보 객체 : 현재 날짜 정보를 제공하는 Date 객체

    <script>
        let t=new Date();
        //키워드(new) : 자바에서 기본적으로 제공하는 객체
        //반드시 new 키워드를 세우고 변수안에 저장해주어야 한다.
        let y=t.getFullYear();//객체. 메서드 여야 식이 성립됨 현재에선 내용이 확인되지 않는다.
        //변수에 한번더 넣어주어야 한다.

        console.log(y);
    </script>

입력하는 메서드에 따라 출력되는 시간과 년도등 다양하게 나올 수 있다.

    let t=new Date();
        //키워드(new) : 자바에서 기본적으로 제공하는 객체
        //반드시 new 키워드를 세우고 변수안에 저장해주어야 한다.
        let y=t.getFullYear();//년도
        //객체. 메서드 여야 식이 성립됨 현재에선 내용이 확인되지 않는다.
        //변수에 한번더 넣어주어야 한다.
        let m=t.getMonth();//월
        let date=t.getDate();//일
        let day=t.getDay();//요일

        let time=document.querySelector(".time");
        time.textContent=y+"년"+m+"월"+date+"일"+day+"요일"

출력이 되지만 컴퓨터에선 인덱스 번호로 인식하기 때문에 

출력은 제대로 되지만 날짜가 지날때마다 유지보수를 해야한다 그렇기 때문에 인덱스 번호가 들어가도록 앞서 선언한 요일 변수를 넣어주면 데이터에 따라 자동변경이 된다.

 


<body>
    div#wrap>header#header>h1.logo+nav.nav^main#container>section^footer
</body>
 
<body>
    <div id="wrap">
        <header id="header">
            <h1 class="logo"></h1>
            <nav class="nav"></nav>
        </header>
        <main id="container">
            <section></section>
        </main>
        <footer></footer>
    </div>
</body>

속성

<body>
    <div id="wrap">
        <img src="./Date/images/cloud1.png" alt="cloud">
        <img src="./Date/images/cloud1.png" alt="cloud">
        <header id="header">
            <h1 class="logo">
                <a href="#">
                    <span class="blind">
                        Lorem
                    </span>
                    <span class="logo-img">

                    </span>
                </a>
            </h1>
            <nav class="nav">
                <strong class="blind">
                    메인메뉴
                </strong>
                <ul class="gnb">
                    <li><a href="#">About</a></li>
                    <li><a href="#">Company</a></li>
                    <li><a href="#">History</a></li>
                    <li><a href="#">Community</a></li>
                    <li><a href="#">Contact</a></li>
                </ul>
            </nav>
        </header>
        <main id="container">
            <section class="section">
                <figure class="mobile">
                    <figcaption class="blind">모바일시계</figcaption>
                    <div class="mobile-in">
                        <div class="screen">
                            <div class="ampm">AM</div>
                            <div class="time">
                                <span class="t">00</span> :
                                <span class="t">00</span> :
                                <span class="t">00</span>
                            </div>
                            <div class="date">
                                <span class="d"></span>
                                <span class="d"></span>
                                <span class="d"></span>
                                <span class="d"></span>요일
                            </div>
                    </div>
                </figure>
            </section>
        </main>
        <footer id="footer"></footer>
    </div>
</body>

 

 

 #wrap>img:nth-child(1){
    position: absolute;
    left: 0; top: 20px;
  }
  #wrap>img:nth-child(2){
    position: absolute;
    left: 500px; top: 80px;
  }

 

*{
    margin: 0; padding: 0;
    box-sizing: border-box;
}
a{
    text-decoration: none;
    color: inherit;
}
ul,ol{
    list-style: none;
}
img{
    max-width: 100%;
}
a, strong,span{
    display: inline-block;
}
.blind{
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    margin: -1px;
    clip: rect(0 0 0 0);
}
  body{
    font-family: "Orbitron", sans-serif;
    font-weight: 400;
    font-style: normal;
    background: skyblue;
  }
  #wrap{
    width: 100vw; height: 100vh;
    min-width: 1200px;
    overflow: hidden;
    min-height: 1000px;
    background: url(./Date/images/bg_morning.jpg) no-repeat center top/cover;
    transition: 2s;
    position: relative;
  }
  #wrap>img:nth-child(1){
    position: absolute;
    left: 0; top: 20px;
  }
  #wrap>img:nth-child(2){
    position: absolute;
    left: 500px; top: 80px;
  }
  #header{
    position: fixed;
    width: 100%;
    left: 0; top: 0;
    padding: 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .logo-img{
    display: block;
    width: 90px; height: 80px;
    background: url(./Date/images/logo_b.png) no-repeat center center/contain;
  }
  /* 낮과 밤의 로고 색이 달라지도록 하기 위해서 백그라운드로 잡음 */
  .gnb{
    display: flex;
    justify-content: space-around;
  }
  .gnb li{
    padding: 5px 10px;
  }
  .gnb li a{
    display: block;
    padding: 5px 10px;
  }
  .mobile{
    width: 1226px; height: 809px;
    background: url(./Date/images/phone_morning.png) no-repeat center center/ cover;
    position: fixed;
    bottom:-50px; right: -50px;
  }
  .screen{
    /* background: yellow; */
    position: absolute;
    left: 150px; top: 103px;
    width: 550px; height: 300px;
    padding: 60px;
    /* text-align: center; */
    /* display: flex;
    justify-content: space-around;
    align-items: center; */
  }
  .ampm{font-size: 20px;}
  .time{font-size: 60px;}
  .date{font-size: 30px;}
#footer{
    font-size: 14px;
    position: fixed;
    left: 50px; bottom: 30px;
}

/*JAVASCRIPT*/
/*morning*/
#wrap.moring{
    background-image: url(./Date/images/bg_morning.jpg);
    color: #212121;
}
#wrap.moring .logo-img{
    background-image: url(./Date/images/logo_b.png);
}
#wrap.moring .mobile{
    background-image: url(./Date/images/phone_morning.png);
}
/*afternoon*/
#wrap.afternoon{
    background-image: url(./Date/images/bg_afternoon.jpg);
    color: #212121;
}
#wrap.afternoon .logo-img{
    background-image: url(./Date/images/logo_b.png);
}
#wrap.afternoon .mobile{
    background-image: url(./Date/images/phone_afternoon.png);
}
/*evening*/
#wrap.evening{
    background-image: url(./Date/images/bg_evening.jpg);
    color: #fff;
}
#wrap.evening .logo-img{
    background-image: url(./Date/images/logo_w.png);
}
#wrap.evening .mobile{
    background-image: url(./Date/images/phone_evening.png);
}
/*night*/
#wrap.night{
    background-image: url(./Date/images/bg_night.jpg);
    color: #fff;
}
#wrap.night .logo-img{
    background-image: url(./Date/images/logo_w.png);
}
#wrap.night .mobile{
    background-image: url(./Date/images/phone_night.png);
}

각 시간마다 자바를 사용해 이미지를 변경하기 위해서 해당 css를 미리 지정

자바에서 클래스리스트로 지정하여 넣어줄것이다. (add, remove)

 

let wrap=document.querySelector("#wrap");
let ampm=document.querySelector(".ampm");
let time=document.querySelectorAll(".t");
let date=document.querySelectorAll(".d");

let now=new Date();//날짜에 해당되는 변수를 선언
let hr=now.getHours();//시간을 선언 hr에
let min=now.getMinutes();//분을 선언 min에
let sec=now.getSeconds();//초를 선언 sec에

time[0].textContent=hr;
time[1].textContent=min;
time[2].textContent=sec;

시간이 출력되어 나오지만 초시간이 가지는 않는다.

let wrap=document.querySelector("#wrap");
let ampm=document.querySelector(".ampm");
let time=document.querySelectorAll(".t");
let date=document.querySelectorAll(".d");

// setInterval(함수, 시간)
setInterval(newTime, 1000) //함수 호출

function newTime(){
    let now=new Date();//날짜에 해당되는 변수를 선언
    let hr=now.getHours();//시간을 선언 hr에
    let min=now.getMinutes();//분을 선언 min에
    let sec=now.getSeconds();//초를 선언 sec에

    time[0].textContent=hr;
    time[1].textContent=min;
    time[2].textContent=sec;

}//선언적 함수

함수를 선언해서 앞서 지정하였던 식을 안에 넣어주고 해당 시간의 흐름을 1000(1초)으로 지정 해주면 시간이 흐르게 된다.  여기서 또 문제는 0초부터 9초는 1자리 숫자이기 때문에 여백이 생기게 되어 디자인적으로 통일성이 사라져 보일 수 있기 때문에 숫자가 한자리일때 숫자앞에 0을 추가하는 자바를 추가로 지정해줄 것이다.

    //숫자가 한자리일때 숫자앞에 0을 추가
    if(sec<10){
        sec="0"+sec
    }

if 식으로 조건식을 만들어서 초의 단위가 만약 10보다 작다면 "문자" 0을 sec 앞에 더하고 (그냥 +를 넣게되면 숫자적으로 합해지기 때문에 꼭 문자식으로 넣어주어야한다.) 다시 값을 재분배해준다.

'기록 > 수업정리_javascr' 카테고리의 다른 글

연산자(증감, 논리)  (0) 2024.08.01
scrollTo()  (0) 2024.07.31
FixedNavigation, 상대좌표값, 절대좌표값  (0) 2024.07.29
javascript_4_함수  (0) 2024.07.18
javascript_3  (0) 2024.07.17
댓글