Haxe Code Cookbook
Haxe programming cookbookBeginnerWorking with date and time

Working with date and time

Reading time: 1.5 minute

The Date class provides a basic structure for date and time related information. This article shows how to work with the date and time tools.

In the context of Haxe dates, a timestamp is defined as the number of milliseconds elapsed since 1st January 1970.

Create fixed date / time

var date = new Date(2020, 1, 2, 12, 30, 0);
// Sun Feb 02 2020 12:30:00 GMT+0100 (W. Europe Standard Time)

Get the current date/time

var today = Date.now();

Formatting a date to string

You can grab the components of a date using these methods (all will return integers):

  • date.getSeconds() The seconds of this Date (0-59 range).
  • date.getMinutes() The minutes of this Date (0-59 range).
  • date.getHours() The hours of this Date (0-23 range).
  • date.getDate() The day of this Date (1-31 range).
  • date.getDay() The day of the week of this Date (0-6 range) where 0 is Sunday.
  • date.getMonth() The month of this Date (0-11 range).
  • date.getFullYear() The full year of this Date (4-digits).

Formatting days / months

Day and month are starting from zero, this is different from how you normally read a date, but is convenient when you manually want to format it:

var now = Date.now();

var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var monthName = monthNames[now.getMonth()];
trace("this month is called " + monthName);

var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var dayName = dayNames[now.getDay()];
trace("this day is called " + dayName);

Formatting dates using strftime standard format

The DateTools class contains a format function to express time in a convenient way.

DateTools.format(Date.now(), "%Y-%m-%d_%H:%M:%S");
// 2018-07-08_14:44:05

DateTools.format(Date.now(), "%r");
// 02:44:05 PM

var t = DateTools.format(Date.now(), "%T");
// 14:44:05

DateTools.format(Date.now(), "%F");
// 2018-07-08

DateTools.format(Date.now(), "%b %d, %Y");
// Jan 08, 2018

For a list of all strftime directives, check out http://strftime.org

Calculating with dates

The DateTools class contains even some more extra functionalities for calculating with Date instances and timestamps:

How to create a countdown timer

In this example we create a timer that counts down to a certain date. When countdown is running, it traces "5 days - 12:02:59" and when it is expired, the timer stops.

The example makes use of the haxe.Timer class and the StringTools as static extension. Both are available in the standard library and run on any target.

Read more in the Haxe API documentation:


Contributors:
Mark Knol
Simon Krajewski
Last modified:
Created:
Category:  Beginner
Tags: