2016-09-08 7 views
1

내 사이트에서 현재 달의 첫 번째 날과 마지막 날에 시작하고 끝나는 프로모션을 제공하고 싶습니다.Template Toolkit/Date :: Manip

달의 첫날을 얻는 것은 쉽지 않지만 항상 그 달의 마지막 날에도 똑같이하고 싶습니다.

the docs에는 Date :: Manip 또는 Date :: Calc 중 하나를 사용할 수 있다고 언급되어 있지만 이러한 문서를 기반으로이 작업을 수행하는 가장 좋은 방법은 분명하지 않습니다.

Template Toolkit에서 월의 마지막 날을 표시하는 가장 좋은 방법은 무엇입니까?

+3

다음 달 1 일 전날이므로 1 개월을 더한 다음 1을 1로 설정하고 1 일을 뺍니다. – ikegami

+0

동의했다, 그것은 perl에서 그것을하는 기본적인 방법이다. 그러나 나는 템플릿 언어 자체에서 그것을 할 수있는 방법을 찾고 있었다. – GoldenNewby

답변

0

이 작업을 얻는 방법은 기본적으로 템플릿 툴킷 플러그인을 통해 Date :: Calc 모듈을로드하는 것이 었습니다. 그런 다음 "last_day"를 해당 월의 일 수로 설정합니다.

Days_in_Month 통화에는 윤년을 처리하기위한 날짜와 월이 필요하므로 날짜 형식의 결과를 전달합니다.

This is the doc containing the format for dates입니다. 여기에는 % m이 있습니다. 그래서

[% 

    calc = date.calc; 
    last_day = calc.Days_in_Month(date.format(date.now(), "%Y"), date.format(date.now(), "%m")); 

%] 

이 시작되고 현재 개월 이내에 종료 월/일의 범위를 보여주기 위해 내가 할 :

[% date.format(date.now(), "%m/01") %] - [% date.format(date.now(), "%m/") %][% last_day %] 

... 달의 마지막 날은 항상 두 자릿수되기 때문에 0으로 채울 필요가 없습니다.

Date :: Calc 모듈을 설치했는지 확인하십시오. 가지고 있다면 Template Toolkit이로드합니다.