'How do you get the current date and time in emscripten c++

I need to get the current date and time in my emscripten code. I know there is emscripten_date_now(). But how would I get the day, the month, the year, and the time (hrs, minutes, and seconds) from that? (Or should I use the C/C++ time functions?).

Some operations that I need to perform is to be able to add a week. To change the month and year.

I am really stuck on this, so help will be greatly appreciated!



Solution 1:[1]

How do you get the current date and time in emscripten c++

Use std::chrono::system_clock::now() to get the current point in time.

how would I get the day, the month, the year, and the time (hrs, minutes, and seconds)

With the date library date library

#include <date/date.h>
#include <iostream>

int
main ()
{
  using namespace date;
  auto const currentTimePoint = std::chrono::system_clock::now ();
  auto const currentDate = year_month_day{ floor<days> (currentTimePoint) };
  std::cout << "year: " << currentDate.year () << std::endl;
  std::cout << "month: " << currentDate.month () << std::endl;
  std::cout << "day: " << currentDate.day () << std::endl;
  auto const timeWithOutDate = make_time (currentTimePoint - date::floor<days> (currentTimePoint));
  std::cout << "hour: " << timeWithOutDate.hours () << std::endl;
  std::cout << "minute: " << timeWithOutDate.minutes () << std::endl;
  std::cout << "second: " << timeWithOutDate.seconds () << std::endl;
}

Example output:

year: 2022
month: Jan
day: 24
hour: 11h
minute: 34min
second: 18s

Some operations that I need to perform is to be able to add a week

#include <date/date.h>
#include <iostream>

int
main ()
{
  using namespace date;
  auto now = floor<days> (std::chrono::system_clock::now ());
  std::cout << "now in 1 week: " << now + weeks{ 1 } << std::endl;
}

Example output:

now in 1 week: 2022-01-31

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1