Ftime
Testing the MarkupExpression ftime
Testing the MarkupExpression ftime
Today is 2024-03-29 Fri in PmWikiland where its is 05:40:19
{(ftime %F -7days)} {(ftime %F when="2007-08-14 -1days")} {(ftime %F when="2007-08-14 -1 days")} {(ftime %F when="2007-08-14 -1 day")} {(ftime %F "2007-04-11 -4 days")} {(ftime %F when="2007-01-24 +1 day")} {(ftime %F when="2007-01-24 +1day")} {(ftime %F "+1 day")} ?today +1 use quotes {(ftime %F +1day)} ?today +1 | 2024-03-22 2007-08-13 2007-08-13 2007-08-13 2007-04-07 2007-01-25 2007-01-25 2024-03-30 ?today +1 use quotes 2024-03-30 ?today +1 |
{(ftime when=" ")} {(ftime %s)} {(ftime %s " ")} {(ftime %s when="")} {(ftime fmt=%F when="2007-08-14 -1days")} | December 31, 1969, at 11:59 PM 1711690819 -1 -1 2007-08-13 |
{(ftime News-20070501)} | May 01, 2007, at 12:00 AM |
{(ftime MarchingOrders2007)} | March 29, 2024, at 05:40 AM |
{(ftime 1177600111)} | March 29, 2024, at 05:40 AM |
{(ftime %s)} | 1711690819 |
{(ftime @1177600111)} | April 26, 2007, at 03:08 PM |
{(ftime fmt="%b %#d %Y" when="second mon of Jan")} {(ftime fmt="%b %#d %Y" when="second tue of Feb")} {(ftime fmt="%b %#d %Y" when="second wed of Mar")} {(ftime fmt="%b %e %Y" when="second thu of Apr")} {(ftime fmt="%b %e %Y" when="second fri of May")} {(ftime fmt="%b %e %Y" when="second sat of Jun")} {(ftime fmt="%b %e %Y" when="third sun of Jul")} {(ftime fmt="%b %e %Y" when="fourth mon of Aug")} {(ftime fmt="%b %e %Y" when="first tue of Sep")} {(ftime fmt="%b %e %Y" when="second wed of Oct")} {(ftime fmt="%b %e %Y" when="third thu of Nov")} {(ftime fmt="%b %e %Y" when="first wed of Dec")} ---- {(ftime fmt="%b %e %Y" when="second Monday of January")} {(ftime fmt="%b %e %Y" when="second Tuesday of February")} ... {(ftime fmt="%b %e %Y" when="first Wednesday of December")} | Jan 08 2024 Feb 13 2024 Mar 13 2024 Apr 11 2024 May 10 2024 Jun 8 2024 Jul 21 2024 Aug 26 2024 Sep 3 2024 Oct 9 2024 Nov 21 2024 Dec 4 2024 Jan 8 2024 Feb 13 2024 ... Dec 4 2024 |
All these work on my own server, with or without the changes in DRange() for 2.2.69. --Petko October 19, 2014, at 06:12 AM
Testing relative GNU date input formats
Today is 2024-03-29 Fri
{(ftime "%Y %b %d %a" "1 mon")} {(ftime "%Y %b %d %a" "2 tue")} {(ftime "%Y %b %d %a" "3 wed")} {(ftime "%Y %b %d %a" "4 thu")} ? {(ftime "%Y %b %d %a" "1 sat")} {(ftime "%Y %b %d %a" "2 sat")} {(ftime "%Y %b %d %a" "3 sat")} {(ftime "%Y %b %d %a" "4 sat")} {(ftime "%Y %b %d %a" "tuesday")} {(ftime "%Y %b %d %a" "last tue")} {(ftime "%Y %b %d %a" "this tue")} {(ftime "%Y %b %d %a" "next tue")} ? {(ftime "%Y %b %d %a" "thursday")} {(ftime "%Y %b %d %a" "last week")} {(ftime "%Y %b %d %a" "this week")} {(ftime "%Y %b %d %a" "next week")} | 2024 Apr 01 Mon 2024 Apr 09 Tue 2024 Apr 17 Wed 2024 Apr 25 Thu ? 2024 Mar 30 Sat 2024 Apr 06 Sat 2024 Apr 13 Sat 2024 Apr 20 Sat 2024 Apr 02 Tue 2024 Mar 26 Tue 2024 Apr 02 Tue 2024 Apr 02 Tue ? 2024 Apr 04 Thu 2024 Mar 18 Mon 2024 Mar 25 Mon 2024 Apr 01 Mon |
All the above are correct; "4 thu" means "Thursday the fourth week", knowing that "next Thursday" is "this Thursday" or "Thursday the first week". --Petko
{(ftime "%Y %b %d %a" "last month")} ? {(ftime "%Y %b %d %a" "this month")} {(ftime "%Y %b %d %a" "next month")} {(ftime "%Y %b %d %a" "June")} ? {(ftime "%Y %b %d %a" "last June")} ? {(ftime "%Y %b %d %a" "this June")} ? {(ftime "%Y %b %d %a" "next June")} ? {(ftime "%Y %b %d %a" "last Aug")} ? {(ftime "%Y %b %d %a" "this Aug")} ? {(ftime "%Y %b %d %a" "next Aug")} ? {(ftime "%Y %b %d %a" "October")} ? {(ftime "%Y %b %d %a" "last Oct")} ? {(ftime "%Y %b %d %a" "this Oct")} ? {(ftime "%Y %b %d %a" "next Oct")} ? {(ftime "%Y %b %d %a" "last year")} {(ftime "%Y %b %d %a" "this year")} {(ftime "%Y %b %d %a" "next year")} | 2024 Feb 29 Thu ? 2024 Mar 29 Fri 2024 Apr 29 Mon 2024 Jun 29 Sat ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Oct 29 Tue ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2023 Mar 29 Wed 2024 Mar 29 Fri 2025 Mar 29 Sat |
{(ftime "%Y %b %d %a" "3 wed")} {(ftime "%Y %b %d %a" "wed 3")} ? {(ftime "%Y %b %d %a" "3 wed aug")} ? {(ftime "%Y %b %d %a" "aug 3 wed")} ? {(ftime "%Y %b %d %a" "aug wed 3")} ? {(ftime "%Y %b %d %a" "3 wed this aug")} ? {(ftime "%Y %b %d %a" "this aug 3 wed")} ? {(ftime "%Y %b %d %a" "3 wed aug this year")} ? {(ftime "%Y %b %d %a" "aug this year 3 wed")} ? {(ftime "%Y %b %d %a" "this year aug 3 wed")} ? {(ftime "%Y %b %d %a" "this year aug wed 3")} ? | 2024 Apr 17 Wed 2024 Mar 29 Fri ? 2024 Sep 18 Wed ? 2024 Aug 07 Wed ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Mar 29 Fri ? 2024 Sep 18 Wed ? 2024 Sep 18 Wed ? 2024 Aug 07 Wed ? 2024 Mar 29 Fri ? |
If something is unsatisfactory with relative dates, the reason is the strtotime function in PHP, not PmWiki which uses the date this function recognizes and returns. See also Relative formats on which relative dates are recognized, for example "this/last/next Aug" is not among the ones that are expected to be recognized. --Petko October 19, 2014, at 06:08 AM
{(ftime %o)} {(ftime "%o")} {(ftime "%Y %b %d%o %a")} | th th 2024 Mar 29th Fri |
{(ftime "%L")} {(ftime "%L" "-4minutes")} {(ftime "%L" "-4hours")} {(ftime "%L" "-4days")} {(ftime "%L" "-4months")} {(ftime "%L" "-4years")} {(ftime "%L" "2022-09-25")} {(ftime "%L" "-9months")} {(ftime "%L" "-10months")} {(ftime "%L" "-11months")} {(ftime "%L" "-12months")} A stamp in the future is unexpected,\\ we should handle it better: {(ftime "%L" "+6days")} {(ftime "%L" "+6months")} (±DST) | A stamp in the future is unexpected, (±DST) |