In PHP, a timestamp usually represents the number of seconds since January 1, 1970. Developers often need to convert between different time formats and timestamps. PHP provides several powerful date and time functions, with date_timestamp_get and DateTime::createFromFormat being commonly used tools. This article explains how to combine these two functions to achieve timestamp conversion.
The date_timestamp_get function retrieves the Unix timestamp from a DateTime object. A Unix timestamp represents the number of seconds since January 1, 1970, and is commonly used to record a specific point in time. Its basic syntax is as follows:
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">date_timestamp_get</span></span><span>(DateTime </span><span><span class="hljs-variable">$object</span></span><span>)
</span></span>
The return value is an integer representing the Unix timestamp.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">"2025-09-12 12:00:00"</span></span><span>);
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_timestamp_get</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Timestamp: "</span></span><span> . </span><span><span class="hljs-variable">$timestamp</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Output:
<span><span><span class="hljs-section">Timestamp: 1757678400</span></span><span>
</span></span>
DateTime::createFromFormat is a highly useful static method that allows us to create a DateTime object based on a specific date-time format. This is especially useful when handling irregular or custom-formatted date strings. Its basic syntax is as follows:
<span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">createFromFormat</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$format</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>, DateTimeZone </span><span><span class="hljs-variable">$timezone</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>)
</span></span>
$format is a date-time format string, $date is a date-time string matching that format, and $timezone is an optional timezone object. If no timezone is specified, PHP uses the default timezone.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$dateStr</span></span><span> = </span><span><span class="hljs-string">"12-09-2025 12:00:00"</span></span><span>;
</span><span><span class="hljs-variable">$format</span></span><span> = </span><span><span class="hljs-string">"d-m-Y H:i:s"</span></span><span>;
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">createFromFormat</span></span><span>(</span><span><span class="hljs-variable">$format</span></span><span>, </span><span><span class="hljs-variable">$dateStr</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Date Object: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Output:
<span><span><span class="hljs-section">Date Object: 2025-09-12 12:00:00</span></span><span>
</span></span>
Sometimes, we need to convert a date string in a specific format into a timestamp. In this case, we can first use DateTime::createFromFormat to convert the date string into a DateTime object, and then use date_timestamp_get to obtain the timestamp.
Suppose we have a date string "12-09-2025 12:00:00" and want to convert it into a timestamp. First, we parse the string with DateTime::createFromFormat, then retrieve the Unix timestamp using date_timestamp_get.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$dateStr</span></span><span> = </span><span><span class="hljs-string">"12-09-2025 12:00:00"</span></span><span>;
</span><span><span class="hljs-variable">$format</span></span><span> = </span><span><span class="hljs-string">"d-m-Y H:i:s"</span></span><span>;
<p></span>// Create DateTime object<br>
$date = DateTime::createFromFormat($format, $dateStr);</p>
<p>// Get timestamp<br>
$timestamp = date_timestamp_get($date);<br>
echo "Timestamp: " . $timestamp;<br>
?><br>
</span>
Output:
<span><span><span class="hljs-section">Timestamp: 1757678400</span></span><span>
</span></span>
This approach allows us to convert any custom-formatted date string into a Unix timestamp.
By combining date_timestamp_get and DateTime::createFromFormat, we can efficiently handle various date string formats and convert them into Unix timestamps. This method is particularly useful for processing user input, log files, or any scenario requiring date parsing in a specific format. Mastering these tools in practical development makes date and time handling more flexible and convenient.