2017-03-05 00:27:41 -06:00

2.0 KiB

title linktitle description godocref date publishdate lastmod categories tags signature workson hugoversion relatedfuncs deprecated aliases
adddate AddDate Returns the time corresponding to adding the given number of years, months, and days passed to the function. https://golang.org/pkg/time/#Time.AddDate 2017-02-01 2017-02-01 2017-02-01
functions
dates
time
now
false

The AddDate function takes three arguments in logical order of years, months, and days.

Example AddDate: Randomized Tweets from the Last 2 Years

Let's assume you have a filed at data/tweets.toml that contains a long list of Tweets you've been collecting to display on your site's homepage. This file is filled with hundreds of [[tweet]] blocks; e.g.---

[[tweet]]
name = "Steve Francia"
twitter_handle = "@spf13"
quote = "I am the creator of Hugo. #metadocreference"
link = "https://twitter.com/spf13"
date = "2017-01-07T00:00:00Z"

Let's assume you want to grab Tweets from the last two years and present them in a random order. In conjunction with the where and now functions, we can limit our range to the last two years via now.AddDate -2 0 0, which represents a point in time 2 years, 0 days, and 0 hours before the time of your last site build.

{{% code file="partials/templates/random-tweets.html" download="tweets.html" %}}

    {{ range where $.Site.Data.tweets.tweet "date" "ge" (now.AddDate -2 0 0) | shuffle }}
        <div class="item">
            <blockquote>
                <p>
                {{ .quote | safeHTML }}
                </p>
                &mdash; {{ .name }} ({{ .twitter_handle }}) <a href="{{ .link }}">
                    {{ dateFormat "January 2, 2006" .date }}
                </a>
            </blockquote>
        </div>
    {{ end }}

{{% /code %}}