Quick note for WordPress developers, this one had me scratching my head.

If you use mktime() in your plugin code you will notice the timezone will always reflect GMT. There is a reason for this.

Notice that in settings, WordPress asks you for your locale. It then tells you what the time is in GMT and then what the new locale time is. Somehow, WordPress overrides php.ini, system time, etc and thinks its GMT when using mktime(). You cant change it anywhere, not in .htaccess ,nothing. It’s probably embedded deep within the core of wordpress somewhere, and has something to do with plugin functions called within the Loop.

Anyways, how do we get the current linux timestamp that mktime() normally so easily creates for us? Use the following wordpress function:


This will give you your standard linux timestamp. It also has the ability to create a mysql timestamp using the format:


Test it out, but don’t try using a separate .php to test as mktime() works fine outside of the Loop.

Hope this helps!!

Digital Nomad. Programmer, Entrepreneur. Academic, Philosopher, Spiritualist. Gamer, VR/AR, IoT & Wearables. CTO Miami, FL Native

  • steve

    Thanks…this was throwing me for a loop and I tried all the usual fixes like .htaccess, etc.

    • Your welcome! Took me hours to figure out what the heck was going on.

Next Post