我刚刚搜索过,没有得到我需要的东西。
我只想在几天之内转换年龄
20123天
并且在几秒钟内
432344344秒
。 我该怎么做?
如果我得到解决方案,我可以将它分成几秒钟。
---我正在寻找PHP解决方案
答案 0 :(得分:2)
所以你必须成倍增加。
为了知道它是否是一个跳跃,你可以使用这个伪代码:
if year modulo 4 is 0
then
if year modulo 100 is 0
then
if year modulo 400 is 0
then
is_leap_year
else
not_leap_year
else is_leap_year
else not_leap_year
答案 1 :(得分:2)
PHP
$birthday = '1989-03-06';
$now = date("Y-m-d");
echo 'You are '. date_diff(date_create($birthday), date_create($now))->format('%a days old');
答案 2 :(得分:0)
什么编程语言?
在C#中:
var begin = new DateTime("1970/01/01");
var end = new DateTime("2011/01/01");
TimeSpan diff = end - begin;
var days = diff.Days
var seconds = diff.TotalSeconds
答案 3 :(得分:0)
C#
DateTime today = DateTime.Now;
DateTime birthday = new DateTime(year, month, date);
TimeSpan diff = today - birthday;
MessageBox.Show(diff.TotalDays.ToString());
答案 4 :(得分:0)
首先,您需要精确地获得出生日期和时间。我不确定这是否有意义:婴儿需要几分钟才能出生。
然后你转换出生日期&时间测量的时间(就像从Epoch测量的Unix time_t
秒,即1970年1月1日0:00 GMT)。
您可以将当前时间设为time_t
然后减去,你的年龄只有几秒钟。
答案 5 :(得分:0)
如果你不太担心小的不准确(a),一年平均有365.2425天,一天有86,400秒。
(a)一旦孩子达到1岁,错误率已经下降到最大 1 / 365 或0.3%。在我成熟的年龄,它下降到0.006%,所以不值得担心: - )
答案 6 :(得分:0)
为了超级准确,您需要考虑闰年:
function get_age($dob_day,$dob_month,$dob_year){
$year = gmdate('Y');
$month = gmdate('m');
$day = gmdate('d');
//seconds in a day = 86400
$days_in_between = (mktime(0,0,0,$month,$day,$year) - mktime(0,0,0,$dob_month,$dob_day,$dob_year))/86400;
$age_float = $days_in_between / 365.242199; // Account for leap year
$age = (int)($age_float); // Remove decimal places without rounding up once number is + .5
return $age;
}
然后使用它:
echo get_date(31, 01, 1985);
如果需要,您可以在$ age float上进行额外的数学运算,将其转换为秒。