You could create a cron job that runs daily and executes a PHP file. You should be able to set this up in your hosting control panel.
Command: php /home/xxx/public_html/cli/sitelive.php
Then go to: https://www.unixtimestamp.com/index.php, add the date you wish to go live and convert it to a UNIX timestamp.
sitelive.php:
const _JEXEC = 1;
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors', 1);
if (file_exists(dirname(__DIR__) . '/defines.php'))
{
require_once dirname(__DIR__) . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', dirname(__DIR__));
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_LIBRARIES . '/import.legacy.php';
require_once JPATH_LIBRARIES . '/cms.php';
// Load the configuration
require_once JPATH_CONFIGURATION . '/configuration.php';
class SiteLivecron extends JApplicationCli
{
public function doExecute()
{
// Get date object
$date = JFactory::getDate();
$current = $date->toUnix();
$goLiveDate = YOUR_GENERATED_UNIX_TIMESTAMP; // Edit this line
if ($current > $goLiveDate)
{
$configFile = JPATH_BASE . '/configuration.php';
$contents = file_get_contents($configFile);
// Replace the $offline variable
$replace = str_replace("$offline = '1'", "$offline = '0'", $contents);
// Save the file
file_put_contents($configFile, $replace);
}
}
}
JApplicationCli::getInstance('SiteLivecron')->execute();
Note: I'd suggest giving this a test before
Hope it helps