Javascript has a troublesome date API.
Most of the prebuilt functions like .getMonth()
work only for ISO (International Standard Time) Dates. Making local time zones a problem.
My MySQL table stores the time stamp in the U.S. Pacific Coast Timezone. So if I want to pick a date from there I have to reformat the Javascript date in the local time zone.
Here is how!
We will use the toLocaleString
function with options.
First define the options
let dateOptions = {timeZone: "America/Los_Angeles", year: 'numeric', month: '2-digit', day: '2-digit' };
Then create the date
var dateToCheck=new Date().toLocaleString("en-US", dateOptions).slice(0, 10);
Then reformat it to YYYY-MM-DD that MySQL needs when you use DATE(timestamp)
in MySQL.
var month=dateToCheck.substring(0,2);
var day=dateToCheck.substring(3,5);
var year=dateToCheck.substring(6,10);
var newDateToCheck=year+"-"+month+"-"+day;
Now we can run a MySQL query like
SELECT data from dataTable where DATE(timestamp) = 'newDateToCheck';
I hope this helps someone else out there.
Post here with any questions.