이 기사는 일반적으로 사용되는 Date 객체의 캡슐화 방법과 발생한 문제에 대한 해결책을 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
JS에서 Date 객체를 오랫동안 사용해왔지만, 자주 사용하는 encapsulation 기능과 제가 겪은 함정은 다음에 직접 사용할 수 있도록 오늘 시간이 나면 기록해 두겠습니다. 그리고 그 함정에 직면했습니다. 혹시 잘못된 부분이 있다면 지적해주시면 감사하겠습니다.
날짜(시, 분, 초 제외)를 타임스탬프로 변환할 때 날짜가 '-'(2019-01-01) 및 '/'(2019/01/01)로 연결되면 타임스탬프로의 변환은 다음과 같습니다. 차이점은
모두가 너무 많은 예제를 보고 지루해하지 않도록 결론부터 시작하겠습니다.
결론:
1) '-'를 사용하여 날짜를 연결한 경우 월과 일이 9보다 작고 앞에 0을 추가한 다음 타임스탬프로 변환하면 시간이 해당 날짜의 오전 8시로 변환됩니다. Point
2) 날짜를 '-'로 연결한 경우, 월과 일이 9보다 작고 9보다 작은 앞에 0이 있으면 타임스탬프로 변환하면 시간 기본적으로 오전 8시를 현재일로 변환합니다
3) '-'를 사용하여 날짜를 연결한 경우, 월과 일이 모두 9보다 작고 하나만 앞에 0이 붙는 경우에는 a로 변환됩니다. 타임스탬프를 사용하면 기본적으로 현재 날짜로 변환되어 오전 12시는 00:00
4) '-'를 사용하여 날짜를 연결한 경우 월과 일이 9보다 큰 경우 변환하면 타임스탬프로 변환하면 기본적으로 오전 8시로 변환됩니다
5) 날짜를 '/'로 연결하면 타임스탬프로 변환하면 오전 00시로만 변환됩니다. the day
요약: 날짜를 타임스탬프로 변환할 때, 시와 분을 설정하지 않은 경우, 같은 날짜에 대해 다른 방식으로 쓰여졌을 때 다른 타임스탬프를 얻지 않도록 '/'를 사용하여 연결하는 것이 가장 좋습니다
다음은 결론을 증명하는 예:
" let time1 = new Date('2019-03-03').getTime(); let time2 = new Date('2019/3/3').getTime(); console.log('获取时间') console.log(time1) console.log(time2) console.log( (time1-time2) / 1000 /60 /60 ) // 8 // 根据本地格式,把Date对象的时间转换为字符串 上午12:00:00也就是 00:00:00 console.log(new Date('2019-03-03').toLocaleString()) // 2019/3/3 上午8:00:00 console.log(new Date('2019-03-12').toLocaleString()) // 2019/3/12 上午8:00:00 console.log(new Date('2019-11-03').toLocaleString()) // 2019/11/3 上午8:00:00 console.log(new Date('2019-3-03').toLocaleString()) // 2019/3/3 上午12:00:00 console.log(new Date('2019-03-3').toLocaleString()) // 2019/3/3 上午12:00:00 console.log(new Date('2019-11-13').toLocaleString()) // 2019/11/13 上午8:00:00 console.log(new Date('2019/03/03').toLocaleString()) // 2019/3/3 上午12:00:00 console.log(new Date('2019/3/3').toLocaleString()) // 2019/3/3 上午12:00:00 console.log(new Date('2019/03/3').toLocaleString()) // 2019/3/3 上午12:00:00 console.log(new Date('2019/3/03').toLocaleString()) // 2019/3/3 上午12:00:00 console.log(new Date('2019/03/12').toLocaleString()) // 2019/3/12 上午12:00:00 console.log(new Date('2019/11/03').toLocaleString()) // 2019/11/3 上午12:00:00 "
날짜 형식을 타임스탬프로 변환하고 타임스탬프를 날짜 형식으로 변환
1. 将日期格式转换为时间戳的三种方法 "javascript let dateStr = new Date('2019-3-20 18:59:39:123'); let timestamp1 = dateStr.getTime(); // 1553079579123 let timestamp2 = dateStr.valueOf(); // 1553079579123 let timestamp3 = Date.parse(dateStr); // 1553079579000 " date.getTime()、date.valueOf()会精确到毫秒,而Date.parse(date)只能精确到秒,毫秒用000替代 2. 将时间戳转换为日期格式 "javascript function dateFormat(timestamp) { timestamp = (timestamp + '' ).length > 10 ? timestamp : timestamp * 1000; //判断时间戳为几位,10位时加上毫秒,13为的则不管 let date = new Date(timestamp); let year = date.getFullYear(); let month = date.getMonth() + 1 > 9 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1); // 月份从0开始,0~11, 所以显示时要 +1 let day = date.getDate() > 9 ? date.getDate() : '0' + date.getDate() ; let hour = date.getHours() > 9 ? date.getHours() : '0' + date.getHours() ; let minutes = date.getMinutes() > 9 ? date.getMinutes() : '0' + date.getMinutes(); let seconds = date.getSeconds() > 9 ? date.getSeconds() : '0' + date.getSeconds(); return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds; } "
두 날짜 사이의 일수를 비교하세요
/** * @method 计算两个日期之间有几天,包括第一天 * @param beginTime 开始时间的日期 '2019-3-19' || '2019/3/19' * @param endTime 结束时间的日期 '2019-3-20' || '2019/3/19' */ getIntervalDay('2019-03-03', '2019-03-8'); // 若是没有用 正则将格式转换的话得到的结果是5天,转换后是6天 function getIntervalDay(beginTime, endTime) { // 先利用将其转换为统一的格式,因为 '-' 格式下的时间戳转换的结果不一致,原因在本文的开头 beginTime = beginTime.replace(/\-/g, '/'); endTime = endTime.replace(/\-/g, '/'); let time1 = new Date(beginTime).getTime(); let time2 = new Date(endTime).getTime(); // console.log(beginTime) // console.log(endTime) let second = time2 - time1; let day = parseInt(second / (1000 * 60 * 60 * 24)) + 1; // 当天也算进去 return day; }
1년이 몇 일인지 판단하세요
// 闰年为366天(2月中多一天),平年为365天。 // 闰年有两种: 1)普通闰年:能被4整除但不能被100整除的年份为普通闰年。 // 2)世纪闰年:能被400整除的为世纪闰年。 function getYearAllDay(year) { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0 ? 366 : 365; }
특정 연도의 한 달의 총 일수를 알아보세요
// date格式为 'xxxx-xx-xx' 'xxxx/xx/xx' 'xxxx/xx' 'xxxx-xx' function getMonthAllDay(date) { date = new Date(date); let year = date.getFullYear(); let month = date.getMonth() + 1; // 从 Date 对象返回月份 (0 ~ 11)。 let nextMonth = year + '-' + (month + 1); let newDate = new Date(nextMonth); newDate.setDate(0); // 利用设置日期时从1~31设置,当设置为0时,即上个月的最后一天 return newDate.getDate(); }이 기사는 여기까지입니다. 다른 흥미로운 콘텐츠를 보려면 PHP 중국어 웹사이트의 JavaScript Tutorial Video 칼럼을 참고하세요!
위 내용은 Date 객체에 일반적으로 사용되는 캡슐화 방법 및 발생한 문제에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

예, JavaScript의 엔진 코어는 C로 작성되었습니다. 1) C 언어는 효율적인 성능과 기본 제어를 제공하며, 이는 JavaScript 엔진 개발에 적합합니다. 2) V8 엔진을 예를 들어, 핵심은 C로 작성되며 C의 효율성 및 객체 지향적 특성을 결합하여 C로 작성됩니다.

JavaScript는 웹 페이지의 상호 작용과 역학을 향상시키기 때문에 현대 웹 사이트의 핵심입니다. 1) 페이지를 새로 고치지 않고 콘텐츠를 변경할 수 있습니다. 2) Domapi를 통해 웹 페이지 조작, 3) 애니메이션 및 드래그 앤 드롭과 같은 복잡한 대화식 효과를 지원합니다. 4) 성능 및 모범 사례를 최적화하여 사용자 경험을 향상시킵니다.

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
