/**
* 年龄转生日(模糊结果)
* @parameter int age(年龄)
* @parameter string symbol(分隔符)
* @return string (yyyy*mm*dd)
* @author he
*/
private function agetobirthday($age,$symbol='-')
{
$age = $age==0?25:$age;
$nowyear = date("Y",time());
$year = $nowyear-$age;
$monthArr = [];
for ($i=1;$i<13;$i++){
$monthArr[] = $i<10?'0'.$i:$i;
}
$dayArr = [];
for ($i=1;$i<29;$i++){
$dayArr[] = $i<10?'0'.$i:$i;
}
$month_key = array_rand($monthArr,1);
$month = $monthArr[$month_key];
$date_tmp_stamp = strtotime($year.'-'.$month);
$day = '';
if( $month=='02' && date("t",$date_tmp_stamp)=='29' ) {
$dayArr = array_merge($dayArr,['29']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else if ( $month=='02' && date("t",$date_tmp_stamp)=='28' ){
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else if( in_array($month, ['01','03','05','07','08','10','12']) ) {
$dayArr = array_merge($dayArr,['29','30','31']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else {
$dayArr = array_merge($dayArr,['29','30']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
}
return $year.$symbol.$month.$symbol.$day;
} /**
* 生日转年龄
* @author he
* @parameter birthday:yyyy-mm-dd
* @return str
*/
private function birthdaytoage($birthday)
{
$age = 0;
$year = date('Y',strtotime($birthday));
$month = date('m',strtotime($birthday));
$day = date('d',strtotime($birthday)); $now_year = date('Y');
$now_month = date('m');
$now_day = date('d'); if ($now_year > $year) {
$age = $now_year - $year - 1;
if ($now_month > $month) {
$age++;
} else if ($now_month == $month) {
if ($now_day >= $day) {
$age++;
}
}
}
if(empty($birthday)){
$age = 26;
}
return $age;
}

PHP--年龄转生日、生日转年龄的更多相关文章

  1. oracle中SQL根据生日日期查询年龄的方法

    方法:SELECT Trunc(MONTHS_BETWEEN(SYSDATE,BIRTH_DATE)/12) FROM 某表 Trunc函数在这里对带有小数位数的数字取整数部分: SYSDATE为or ...

  2. js根据生日计算出年龄

    /*根据出生日期算出年龄*/ function jsGetAge(strBirthday){ var returnAge; var strBirthdayArr=strBirthday.split(& ...

  3. 集合练习 练习:每一个学生Student都有一个对应的归属地定义为String类型。学生属性:姓名,年龄 注意:姓名和年龄相同的视为同一个学生。保证学生的唯一性。 1、描述学生。 2、定义Map容器,将学生作为键,地址作为值存入集合中。 3、获取Map中的元素并进行排序。

    package com.rf.xs.map; public class Student implements Comparable<Student> { private String na ...

  4. 问题:oracle 计算年龄;结果:oracle中根据生日计算年龄的问题

    SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,birthday)/12,1) FROM ltteacherinfo where name='朱雪东111'这个报错ORA 00 ...

  5. 微信小程序根据生日获取年龄

    // 根据出生日期计算年龄周岁 传参格式为1996-06-08 // 根据出生日期计算年龄周岁 传参格式为1996-06-08 function getAge(strBirthday) { var r ...

  6. 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)

    题目 /* 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始 ...

  7. 蓝桥杯比赛javaB组练习《生日蜡烛》

    题目如下: 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始 ...

  8. Java 计算年龄

    public static String getAgeTxt(String birthTime,String beginTime,int level){ if(StringUtils.isBlank( ...

  9. Excel中最精确的计算年龄的公式

    身份证算年龄 假设A1是身份证号所在单元格 =IF(MONTH(NOW())<INT(MID(A1,11,2)),INT(YEAR(NOW())-INT(MID(A1,7,4)))-1,IF(M ...

  10. 工作中遇到的问题——mysql关于年龄,性别的统计

    终于暂时闲下来了,一个项目加班加点一年多,前面太忙就顾不上博客了,慢慢的就懈怠了,最近算是暂时闲下来了,项目已经验收进入后期维护阶段,每天空余的时间也多了,想重新拾起博客,不求写什么高深的东西,以后就 ...

随机推荐

  1. (转)NodeJS - 第一个应用程序Hello World

    安装NodeJs 在创建实际的“Hello,World!”应用之前,我们应该先安装NodeJS,安装NodeJS可以访问NodeJS官网,下载相应系统的NodeJS的安装包,进行安装. 程序组件 关于 ...

  2. JavaScript中定义函数的几种方式

    函数的组成:函数名 + 函数体 1.使用function关键字定义函数 -- 具有优先级,优先将function关键字定义的函数优先执行 function  functionName(arg0, ar ...

  3. Python xlwt模块

    Examples Generating Excel Documents Using Python’s xlwt Here are some simple examples using Python’s ...

  4. 如何玩转跨库Join?跨数据库实例查询应用实践

    背景 随着业务复杂程度的提高.数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至选择不同的数据库类型以满足其业务需求.原本在同一数据库实例里就能实现的SQL查询,现在需要跨多 ...

  5. 模拟——1031D

    /* dp[i][j]表示到[i,j]的权值 cnt[i,j]表示到[i,j]还可以使用的修改的次数 cnt[i,j]=max(cnt[i-1,j],cnt[i,j-1]) 如果mp[i,j]!='a ...

  6. python的meshgrid用法和3D库 mpl_toolkits.mplot3d 与PolynomialFeatures多项式库学习

    meshgrid import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Ax ...

  7. Bitcoin 的基本原理

    昨天读到了 Bitcoin 的中文介绍,觉得非常有意思.不过上面这篇文章解释的非常不靠谱,我花了一晚上去Bitcoin的官方网站 仔细研究了一下,总算理解了其原理.感觉非常有启发,尤其是对虚拟货币的流 ...

  8. Error-Idea:Process finished with exit code 1

    ylbtech-Error-Idea:Process finished with exit code 1 1.返回顶部 1. log4j:WARN No appenders could be foun ...

  9. PAT甲级——【牛客练习题1002】

    题目描述 Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chi ...

  10. Maven实战08_仓库

    何为Maven仓库 在Maven世界中.任何一个依赖.插件或者项目构建的输出,都可以称之为构件.例如依赖log4j-1.2.15.jar是一个构件,差价maven-compile-plugin-2.0 ...