Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I have two dates given, aug 27 2015 -> sep 9 2015.
I'd like to know how much days have passed while using the UTC - 8 timezone.
Can anyone share a small tutorial/code to help my case?
Thank you so much.
You can use DateTime class also. And the DateTime.diff function.
<?php
$d1 = new DateTime();
$d1->setTimezone(new DateTimeZone('America/Los_Angeles')); //Do this for all 3 objects
$d2 = new DateTime();
$d3 = new DateTime();
$d1->setDate(2015, 8, 27);
$d2->setDate(2015, 9, 9);
$gone = $d1->diff($d3);
$left = $d2->diff($d3);
echo "<br>";
echo ($gone->format('%R%a days'))." gone. <br>";
echo ($left->format('%R%a days'))." left. <br>";
?>
After some research and reading some php documentation comments, this code worked for me:
<?php
date_default_timezone_set("America/Los_Angeles");
$date1 = strtotime("27 August 2015");
$days = floor((time() - $date1)/86400);
print("$days days have passed.\n");
?>
Related
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 3 years ago.
Improve this question
I need to display the duration between the reported date / time and the time date / now. eg. 1 days 15 hours 48 mins
$reported = the_sub_field('reported'); //format eg. 27 January, 2020 12:00
$currdt= new DateTime(Date("Y-m-d H:i"));
var_dump($currdt);
$reporteddt= new DateTime($reported );
var_dump($reporteddt);
$interval = $currdt->diff($reporteddt);
var_dump($interval);
$duration = $interval->d ." days ".$interval->h ." hours ". $interval->i ." mins";
Many thanks
You have to remove the comma.
$reported = '28 January, 2020 12:00';
$reported = str_replace(',', '', $reported);
$reporteddt= new DateTime($reported);
var_dump($reporteddt);
Test
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
can you please help me?
i need to change
2017-12-31 11:45:00
to
2017-12-31T11:45
using php function.
I need this datetime-local format for putting in a input value.
This might do it for you:
<?php
$date = '2017-12-31 11:45:00';
$newdate = date('Y-m-d\TH:i', strtotime($date));
echo $newdate; // 2017-12-31T11:45
;?>
Documentation about strtotime: http://php.net/manual/en/function.strtotime.php
NOTE:
strtotime max date is '19 Jan 2038 03:14:07 UTC'.
New solution: PHP 5 >= 5.2.0, PHP 7
Please consider to use the new DateTime function: http://php.net/manual/en/datetime.construct.php
Example new DateTime:
<?php
$d = new DateTime("9999-12-31");
$d->format("Y-m-d"); // "9999-12-31"
$d = new DateTime("0000-12-31");
$d->format("Y-m-d"); // "0000-12-31"
$d = new DateTime("-9999-12-31");
$d->format("Y-m-d"); // "-9999-12-31"
?>
This can be done quite simply using the DateTime object provided with PHP
<?php
$dt = DateTime::createFromFormat('Y-m-d H:i:s', '2017-12-31 11:45:00');
$newFormat = $dt->format('Y-m-d\TH:i');
echo $newFormat;
Result:
2017-12-19T11:45
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
My date string value is 1478025000. want to get year and month in the string format itself from this string,is it possible? the day should be 0 and next month and next year like that.
my desired output should be 1477852200
Try something like this:
$epoch = 1478025000;
$dt = new DateTime("#$epoch"); // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m'); // Display as year and month: YYYY-MM
echo $dt->format('m-Y'); // Display as month and year: MM-YYYY
If you want to get just the year and month as an epoch, try something like:
$epoch = 1478025000;
$dt = new DateTime("#$epoch"); // convert UNIX timestamp to PHP DateTime
$year = $dt->format('Y');
$day = $dt->format('n');
$answer = new DateTime();
$answer->setDate($year, $month, 0);
$answer->setTime(0, 0, 0);
echo $answer->getTimestamp();
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
How can I calculate the mid-point between two dates in PHP
In Java Script we do -
var midpoint = new Date((date1.getTime() + date2.getTime()) / 2);
Any help would be appreciated.
Try this:
$midPoint = (strtotime($date1) + strtotime($date2))/2;
This is done fairly similarly to javascript actually try this
$midpoint = ($date1 + $date2) / 2
This assuming $date1 and $date2 are timestamps ( the same that is generated from getTime() )
I have found a way for this -
$daysDiff = diffDateTime($StartDate, $EndDate);
$midDaysDiff = round($daysDiff['days']/2);
$midDate = strtotime(date("m/d/Y", strtotime($StartDate)) . "+ $midDaysDiff Days");
function diffDateTime($StartDate, $EndDate)
{
// returns diff between two dates in days...
}
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I have a variable $dob which returns a date, in the following format: 1970-02-01 00:00:00
How can I use php to calculate the age of the person?
Your question is explained in detail in the PHP documentation, it bascially goes like this:
// create a datetime object for a given birthday
$birthday = new DateTime("2012-12-12");
// substract your timestamp from it
$diff = $birthday->diff($dob);
// output the difference in years
echo $diff->format('%Y');
Try this:
<?php
$age = '1970-02-01 00:00:00';
echo (int)((time()-strtotime($age))/31536000);
Output: 43, in years.
$dob = '1970-02-01 00:00:00';
$date = new DateTime($dob);
$diff = $date->diff(new DateTime);
echo $diff->format('%R%a days');
Basically stolen from here: http://uk1.php.net/manual/en/datetime.diff.php
Formatting options: http://uk1.php.net/manual/en/dateinterval.format.php
One-liner:
echo date_create('1970-02-01')->diff(date_create('today'))->y;
Demo.
i would try this
$user_dob = explode('-',$dob);
$current_year= date('Y');
$presons_age = $current_year - $user_dob[0];
This is an untested code but i feel u should get the logic.
strtotime() will convert your date into a timestamp, then subject that from time() and the result is the age in seconds.
$age_in_seconds = time() - strtotime('1970-02-01');
To display the age in years (+- 1 day), then divide by the number of seconds in a year:
echo "Age in whole years is " . floor($age_in_seconds / 60 / 60 / 24 / 365.25);