/**
* 年龄转生日(模糊结果)
* @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. mac nginx php php-fpm

    #the php-fpm config and cammand... cp /private/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf ...

  2. 模拟实现call、apply

    1. 知识点补充: 首先在模拟实现前,先Mark一些我之前不知道的知识: a. eval(string)函数:可计算某个字符串,并执行其中的JavaScript代码 其中,string是必需传入的待计 ...

  3. 基于windows消息的响应USB插入或取出

    导语:当有设备进入windows时,系统会向所有的应用层发送WM_DEVICECHANGE消息.进一步根据相应的事件判断设备. LRESULT CALLBACK WndProc(HWND hWnd, ...

  4. [JZOJ3171] 【GDOI2013模拟4】重心

    题目 描述 题目大意 有一堆长为222的矩形,最下面的右端点横坐标为000. 每个矩形都有其固定的质量. 将这些矩形堆在一起,使得最右边的横坐标最大,并且满足它不会塌掉(满足物理学). 思考历程 首先 ...

  5. javascript 释放变量

    JavaScript 释放变量 在Javascript是可以使用“delete”来手动删除变量,通过这样的方法让GC(Garbage collection)来回收内存,但在JS中并不是所有的变量都可以 ...

  6. 菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表ngx_chain_t[转]

    菜鸟nginx源码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.c ...

  7. 按钮事件v-on

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  8. pycharm优化

    一.版本选择 建议安装5.0版本,因为好注册,这个你懂得. 下载地址: https://confluence.jetbrains.com/display/PYH/Previous+PyCharm+Re ...

  9. 使用flags定义命令行参数

    TensorFlow定义了tf.app.flags,用于支持接受命令行传递参数,其中tf.app.flags.DEFINE_xxx()是添加命令行的optional argument(可选参数),而t ...

  10. Activiti 变量设置

    使用工作流的时候必定会附上一些变量.例如,请假的时候有填写请假理由,天数等等.可以用以下代码实现 public void setVariables(){ /**与任务(正在执行)*/ TaskServ ...