HEX
Server: Apache/2
System: Linux vpslll9m.sdns.vn 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
User: thuexe247c (1044)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/thuexe247c/public_html/wp-content/plugins/date-counter/Classes/TotalDatetimeDifference.php
<?php


class TotalDatetimeDifference extends AbstractDatetime
{
	public function display($atts)
	{
		if (!isset($atts["startdate"]))
			return self::error_message('<b>startDate</b> attribute is required.');

		if (!isset($atts["enddate"]))
			return self::error_message('<b>endDate</b> attribute is required.');

		if (!isset($atts["format"]))
			return self::error_message('<b>format</b> attribute is required.');

		try {
			$start_date = $this->get_datetime($atts["startdate"]);
			$end_date = $this->get_datetime($atts["enddate"]);

			$difference = $end_date->diff($start_date);

			switch($atts['format']) {
				case "y":
					$response = $difference->y;
					break;
				case "m":
					$response = ($difference->y * 12) + $difference->m;
					break;
				case "w":
					$response = floor($difference->days / 7);
					break;
				case "d":
					$response = $difference->days;
					break;
				case "h":
					$hours = $difference->days * 24;
					$hours += $difference->h;
					$response = $hours;
					break;
				case "i":
					$minutes = $difference->days * 24 * 60;
					$minutes += $difference->h * 60;
					$minutes += $difference->i;
					$response = $minutes;
					break;
				case "s":
					$seconds = $difference->i * 60;
					$seconds += $difference->s;
					$response = $seconds;
					break;
				default:
					$response = self::error_message('The entered format does not match any of the following: y, m, w, d, h, i, s. Make sure to enter <b>only one letter</b>.');
					break;
			}

		} catch (Exception $e) {
			$response = self::error_message($e->getMessage());
		} finally {
			return $response;
		}
	}
}

add_shortcode( 'TotalDatetimeDifference', array( new TotalDatetimeDifference, 'display') );