1. /**
  2. * 年龄转生日(模糊结果)
  3. * @parameter int age(年龄)
  4. * @parameter string symbol(分隔符)
  5. * @return string (yyyy*mm*dd)
  6. * @author he
  7. */
  8. private function agetobirthday($age,$symbol='-')
  9. {
  10. $age = $age==0?25:$age;
  11. $nowyear = date("Y",time());
  12. $year = $nowyear-$age;
  13. $monthArr = [];
  14. for ($i=1;$i<13;$i++){
  15. $monthArr[] = $i<10?'0'.$i:$i;
  16. }
  17. $dayArr = [];
  18. for ($i=1;$i<29;$i++){
  19. $dayArr[] = $i<10?'0'.$i:$i;
  20. }
  21. $month_key = array_rand($monthArr,1);
  22. $month = $monthArr[$month_key];
  23. $date_tmp_stamp = strtotime($year.'-'.$month);
  24. $day = '';
  25. if( $month=='02' && date("t",$date_tmp_stamp)=='29' ) {
  26. $dayArr = array_merge($dayArr,['29']);
  27. $day_key = array_rand($dayArr,1);
  28. $day = $dayArr[$day_key];
  29. } else if ( $month=='02' && date("t",$date_tmp_stamp)=='28' ){
  30. $day_key = array_rand($dayArr,1);
  31. $day = $dayArr[$day_key];
  32. } else if( in_array($month, ['01','03','05','07','08','10','12']) ) {
  33. $dayArr = array_merge($dayArr,['29','30','31']);
  34. $day_key = array_rand($dayArr,1);
  35. $day = $dayArr[$day_key];
  36. } else {
  37. $dayArr = array_merge($dayArr,['29','30']);
  38. $day_key = array_rand($dayArr,1);
  39. $day = $dayArr[$day_key];
  40. }
  41. return $year.$symbol.$month.$symbol.$day;
  42. }
  43.  
  44. /**
  45. * 生日转年龄
  46. * @author he
  47. * @parameter birthday:yyyy-mm-dd
  48. * @return str
  49. */
  50. private function birthdaytoage($birthday)
  51. {
  52. $age = 0;
  53. $year = date('Y',strtotime($birthday));
  54. $month = date('m',strtotime($birthday));
  55. $day = date('d',strtotime($birthday));
  56.  
  57. $now_year = date('Y');
  58. $now_month = date('m');
  59. $now_day = date('d');
  60.  
  61. if ($now_year > $year) {
  62. $age = $now_year - $year - 1;
  63. if ($now_month > $month) {
  64. $age++;
  65. } else if ($now_month == $month) {
  66. if ($now_day >= $day) {
  67. $age++;
  68. }
  69. }
  70. }
  71. if(empty($birthday)){
  72. $age = 26;
  73. }
  74. return $age;
  75. }

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. Django中static文件的引入

    1. 在django project中创建 static文件夹 2.settings.py中配置要在 STATIC_URL = '/static/'  下边 STATICFILES_DIRS = [ ...

  2. 2019-8-31-dotnet-获取程序所在路径的方法

    title author date CreateTime categories dotnet 获取程序所在路径的方法 lindexi 2019-08-31 16:55:58 +0800 2019-03 ...

  3. Map和Reduce函数

  4. curl http_code 状态码

    1.只得到一个url的http_code的状态码 curl -I -m 10 -o /dev/null -s -w %{http_code} http://127.0.0.1/a.html 查询hea ...

  5. 【左偏树】 [JLOI2015]城池攻占

    原来左偏树还可以打tag,get了 和线段树打tag一样,时不时Push_Down就好了 然后这里显然也是要先乘法后加法的 tag打上了之后还是其他一般左偏树差不多,有些细节注意一下 然后开 long ...

  6. 防范永恒之蓝勒索病毒-XP、Win10文件共享怎样设置

    企业内部员工之间的文件共享,是企业内部文件交换的重要手段.传统的文件共享是通过Windows的目录共享来实现的,而目录共享功能因其可能存在安全隐患使得很多企业分发放弃了这个文件共享模式. 如去年勒索病 ...

  7. C++ 类设计核查表

    参考:https://www.jianshu.com/p/01601515ca31 <大规模C++程序设计> 函数接口: 1.运算符或非运算符函数? 2.自由或成员运算符? 3.虚函数或非 ...

  8. MongDB4.0-入门学习之运算符

    MongDB 4.0 入门学习之运算符 基本语法:db.collection.find({<key>:{$symbol:<value>}}) 条件查询匹配运算符 符号 描述 范 ...

  9. 学习笔记 css样式

    大小 width:宽度  height:高度 背景 background-color  背景色   background-image  背景图片     background-repeat  背景平铺 ...

  10. Mac系统下安装Vue-cli详细步骤

    Vue-cli安装 因为是mac系统,所以和视频里老师讲的有些许不同. 1.首先打开终端 按照老师的操作,首先检查node版本 下面是我的操作 打开终端,输入命令 node -v 我去,找不到node ...