Strtotime, Zend 프레임 워크 또는 배 패키지를 사용하지 않고 2 날짜 사이에서 차이 (초) 어떻게 얻습니까?

StackOverflow https://stackoverflow.com/questions/2068033

  •  20-09-2019
  •  | 
  •  

문제

제목이 언급 한 바와 같이, 나는 Strtotime, Zend Framework 또는 Pear 패키지를 사용하지 않고 2 (특히 지금과 과거 사이의 날짜 사이) 사이의 차이 (초)를 얻고 싶습니다.

나는 내 이유에 대한 세부 사항에 들어가고 싶지 않지만 그것의 요점은 내가 아주 오래된 날짜로 일하고 있다는 것입니다 (그리고 나는 늙었다는 것을 의미합니다.

반환 된 결과는 주어진 두 번째 텍스트 타임 스탬프까지 매우 정확한 것이 바람직합니다. 함수를 호출하는 형식은 다음과 유사해야합니다.

$bar = foo("YYYY-MM-DD HH:MM:SS", "AD"); // Where AD is Anno Domini 
$baz = foo("YYYY-MM-DD HH:MM:SS", "BC"); // Where BC is Before Christ

그 기능을 제공하는 첫 번째 사람은 다음과 같습니다.

  • 높은 가독성
  • 마술 없음 (3 차 운영자 등)

그들의 대답을 투표하고 받아 들일 것입니다. 그들의 이름은 코드를 사용하는 소스 파일의 헤더에 적용됩니다.

편집 (Re : 명성) :

누군가가 헤더에 인정받은 이름을 가진 사람은 나쁘게 보이고 편집 할 수 있다고 말했습니다. 원하는 기능을 사용하는 소스 파일의 헤더에 대해 이야기하고 있습니다. 이것은 "명성"에 관한 것이 아닙니다. 신용이 기한이 지날 때 신용이 주어져야하며 누가 작품을 저술 한 사람에 대해 거짓말을 할 필요가 없습니다.

편집 (Re : 정확성) :

내가 할 수있는 한 최선을 다해 "메시지의 편지"를 지키고 싶은 이유는 없습니다.

편집 (Re : Magic) :

마술은 다른 사람들과는 다른 것입니다. 3 원 운영자와 관련하여, 내가 당신의 의견을 존중할 때 내 의견을 존중하십시오. 고맙습니다.

편집 (Re : 오래된 날짜 및 1 초 정확도) :

역사의 학생으로서, 그것은 나에게 의미가 있습니다. "1 초 정확도"에 대한 욕구는 절대적인 것이 아닙니다. 완벽은 달성 할 수 있지만 필요하지 않습니다.

도움이 되었습니까?

해결책

각 데이터 시간을 부품 (연도, 월, 날짜, 시간, 분, 초)으로 나누는 것이 좋습니다. 그런 다음 각 부분마다 가장 최근에 가장 많은 마이너스의 기본 합계를 수행합니다 (BC 날짜는 사실상 음수라는 것을 기억하십시오).

당신은 절대적으로 정확하지 않을 것입니다. 당신은 도약 연도를 고려해야하며, 세기가 윤년이든 그레고리안/줄리안 날짜 사이의 전환 등.

또한 한계와 높은 정확도 요구 사항에 대한 귀하의 추론을 알고 싶습니다!

다른 팁

이러한 모든 문제에 대해서는 캘린드 계산 (Google)을 참조하십시오.

오, 그리고 AD 연도는 없었습니다. 달력은 1BC에서 1AD로 갔거나 오히려 우리는 대부분의 세계가 다른 시스템을 사용하고있을 당시에는 달력을 그렇게 정의합니다.

또는 다음과 같은 온라인 계산기를 호출하십시오 이 하나 그리고 많은 시간을 절약하십시오.

일부 언어와 데이터베이스는 산술 날짜가 있지만 일부는 그렇지 않습니다. 날짜를 데이터베이스에 저장하면 Postgres를 사용해보십시오.

pg=> SELECT now() - 'January 8, 52 BC'::DATE;
-----------------------------
 754835 days 20:27:31.223035

DB를 사용하지 않으면 조금 더 문제가됩니다. PHP의 날짜 산술은 ... 글쎄, 나는 그것에 대해 이야기하지 않을 것입니다. Python 's는 매우 좋지만 1BC에서 시작합니다.

당신은 당신 자신을 굴려야 할 수도 있습니다 ...

타임 스탬프를 빼지 않는 이유는 무엇입니까?

mktime(16,59,0,8,7,2001) - mktime(16,59,0,8,7,2000) = 그들 사이의 초

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top