மற்ற பதில்கள் உங்கள் கணினியில் உள்ள அனைத்து தேதிகளுக்கான நேர மண்டலத்தை அமைக்கின்றன. உங்கள் பயனர்களுக்கு பல நேரமண்டலங்களை ஆதரிக்க விரும்பினால் இது எப்போதும் சரியாக வேலை செய்யாது.
குறுகிய பதிப்பு இங்கே:
<?php
$date = new DateTime("now", new DateTimeZone('America/New_York') );
echo $date->format('Y-m-d H:i:s');
PHP>= 5.2.0 இல் வேலை செய்கிறது
ஆதரிக்கப்படும் நேர மண்டலங்களின் பட்டியல்: php.net/manual/en/timezones.php
பயனர் அமைப்பில் ஏற்கனவே உள்ள நேரம் மற்றும் நேர மண்டலத்தை அமைக்கும் பதிப்பு இதோ
<?php
$usersTimezone = 'America/New_York';
$date = new DateTime( 'Thu, 31 Mar 2011 02:05:59 GMT', new DateTimeZone($usersTimezone) );
echo $date->format('Y-m-d H:i:s');
செயல்முறையை இன்னும் கொஞ்சம் தெளிவாகக் காண்பிப்பதற்கு, இங்கே இன்னும் வார்த்தைப் பதிப்பு உள்ளது
<!-- wp:code -->
<pre class="wp-block-code"><code><?php
// Date for a specific date/time:
$date = new DateTime('Thu, 31 Mar 2011 02:05:59 GMT');
// Output date (as-is)
echo $date->format('l, F j Y g:i:s A');
// Output line break (for testing)
echo "\n<br />\n";
// Example user timezone (to show it can be used dynamically)
$usersTimezone = 'America/New_York';
// Convert timezone
$tz = new DateTimeZone($usersTimezone);
$date->setTimeZone($tz);
// Output date after
echo $date->format('l, F j Y g:i:s A');
</code></pre>
<!-- /wp:code -->
PHP தேதி நூலகங்கள்
- கார்பன் - மிகவும் பிரபலமான தேதி நூலகம்.
- குரோனோஸ் - மாறாத தன்மையில் கவனம் செலுத்தும் கார்பனுக்கான ட்ராப்-இன் மாற்றீடு. அது ஏன் முக்கியமானது என்பதை கீழே காண்க.
- jenssegers/தேதி — பல மொழி ஆதரவைச் சேர்க்கும் கார்பனின் நீட்டிப்பு.
இன்னும் பல நூலகங்கள் உள்ளன என்று நான் நம்புகிறேன், ஆனால் இவை எனக்குப் பரிச்சயமான சில.
மாறாத தேதி பொருள்கள்
இன்றிலிருந்து 1 வாரமும், இன்றிலிருந்து 2 வாரமும் கணக்கிட வேண்டும் என்றால். நீங்கள் சில குறியீடுகளை எழுதலாம்:
<?php
// Create a datetime (now, in this case 2017-Feb-11)
$today = new DateTime();
echo $today->format('Y-m-d') . "\n<br>";
echo "---\n<br>";
$oneWeekFromToday = $today->add(DateInterval::createFromDateString('7 days'));
$twoWeeksFromToday = $today->add(DateInterval::createFromDateString('14 days'));
echo $today->format('Y-m-d') . "\n<br>";
echo $oneWeekFromToday->format('Y-m-d') . "\n<br>";
echo $twoWeeksFromToday->format('Y-m-d') . "\n<br>";
echo "\n<br>";
வெளியீடு:
2017-02-11
---
2017-03-04
2017-03-04
2017-03-04
நாங்கள் விரும்பியது அதுவல்ல. PHP இல் ஒரு பாரம்பரிய DateTime பொருளை மாற்றுவது புதுப்பிக்கப்பட்ட தேதியைத் தருவது மட்டுமல்லாமல் அசல் பொருளையும் மாற்றும்.
இது எங்கே DateTimeImmutable
உள்ளே வருகிறது.
$today = new DateTimeImmutable();
echo $today->format('Y-m-d') . "\n<br>";
echo "---\n<br>";
$oneWeekFromToday = $today->add(DateInterval::createFromDateString('7 days'));
$twoWeeksFromToday = $today->add(DateInterval::createFromDateString('14 days'));
echo $today->format('Y-m-d') . "\n<br>";
echo $oneWeekFromToday->format('Y-m-d') . "\n<br>";
echo $twoWeeksFromToday->format('Y-m-d') . "\n<br>";
வெளியீடு:
2017-02-11
---
2017-02-11
2017-02-18
2017-02-25
இந்த இரண்டாவது எடுத்துக்காட்டில், நாம் எதிர்பார்த்த தேதிகளை மீண்டும் பெறுகிறோம். பயன்படுத்தி DateTimeImmutable
அதற்கு பதிலாக DateTime
, தற்செயலான நிலை பிறழ்வுகளைத் தடுக்கிறோம் மற்றும் சாத்தியமான பிழைகளைத் தடுக்கிறோம்.