新足迹

 找回密码
 注册

精华好帖回顾

· 美食接龙--芝麻花生糖+口水鸡 下一棒:大胃 题材:花生 (2010-3-28) chesecake · 参加活动 - 中秋家宴 (2010-9-25) purplenight
· 2016年我9个月OB建全砖双层房经历,多图 (2017-7-8) Birdzhao · 5分钟软式甜面包-不需要面包机和手揉 (2010-3-6) cctang
Advertisement
Advertisement
查看: 965|回复: 7

[IT] 借人气, php问题, 如何判定两位数年份转换到四位数年份? [复制链接]

头像被屏蔽

禁止发言

发表于 2011-12-8 22:29 |显示全部楼层
此文章由 hfwang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hfwang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
csv里的年份,
如果是四位数,如2011,则正确,
如果是两位数,如11,则加上2000。
如果是其他,则报错。

我写了这样的,被认为是坏习惯。说有个空的statement是在if后是坏习惯。
--------------------------------------
if (strlen($soldYear) == 2)
  {
  $soldYear += 2000;
  }
  elseif (strlen($soldYear) == 4)
  {
   
  }
  else
  {
  $result['errors'][] = "Line {$lineNumber} contains invalid 'whenSold' date. Expected date input format: 'dd/mm/yyyy hh:mm:ss' or 'dd/mm/yy hh:mm:ss'";
  continue;
  }

---------------------------------------

请教这样的还能写成其他的样子吗?



有模版给我,

if ($soldYear < 100 && $soldYear > 9)
  {
  $soldYear += 2000;
  }

  if ($soldYear < ($thisYear + 10)) # calculate $thisYear somewhere above
  {
  # error stuff goes here
  ...
  }

一直不明白$thisYear这个变量怎么定义,能用早这里。


我是菜鸟,还希望大侠看下,谢谢了!
Advertisement
Advertisement

发表于 2011-12-9 19:10 |显示全部楼层
此文章由 huaxianz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huaxianz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
首先,你发错地方了。。。。

其次,虽然不懂php,但是你的问题很简单,从common sense上说,你的statements不严谨,比如strlen($soldYear) == 4,那岂不是"abcd"也合法了?

"说有个空的statement是在if后是坏习惯。"
--放一个等式在那,does nothing, just a placeholder. e.g. 1=1;

"一直不明白$thisYear这个变量怎么定义,能用早这里。"
-- cc this. "# calculate $thisYear somewhere above"

发表于 2011-12-9 19:36 |显示全部楼层
此文章由 KCP 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 KCP 所有!转贴必须注明作者、出处和本声明,并保持内容完整
$soldYear = ($soldYear > 99 ? $soldYear : (($soldYear > date('y') ? (1900 + $soldYear) : (2000 + $soldYear)));
头像被屏蔽

禁止发言

发表于 2011-12-9 20:56 |显示全部楼层

回复 huaxianz 2# 帖子

此文章由 hfwang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hfwang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
其实我不是编程的料,单位还要培养我写程序,悲脆。。准备跳槽了。。

发表于 2011-12-9 21:59 |显示全部楼层
此文章由 huaxianz 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huaxianz 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 hfwang 于 2011-12-9 21:56 发表
其实我不是编程的料,单位还要培养我写程序,悲脆。。准备跳槽了。。

祝好运!

发表于 2011-12-9 22:51 |显示全部楼层

回复 hfwang 1# 帖子

此文章由 pinkdreamer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pinkdreamer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你这个代码问题很多,单纯解决你的空statement的问题


if (strlen($soldYear) == 2)
  {
  $soldYear += 2000;
  }
  elseif (strlen($soldYear) != 4)
{  $result['errors'][] = "Line {$lineNumber} contains invalid 'whenSold' date. Expected date input format: 'dd/mm/yyyy hh:mm:ss' or 'dd/mm/yy hh:mm:ss'";
  continue;
  }
Advertisement
Advertisement

发表于 2011-12-9 22:52 |显示全部楼层
此文章由 pinkdreamer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pinkdreamer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
或者你一上来要先判断输入的正确性
然后再考虑数据类型的转换,这个是比较正确的思路吧?

发表于 2011-12-10 16:57 |显示全部楼层
此文章由 LifesoCool 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 LifesoCool 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 hfwang 于 2011-12-9 20:56 发表
其实我不是编程的料,单位还要培养我写程序,悲脆。。准备跳槽了。。


师兄,我还纳闷你为什么弄上PHP了~~??什么单位?我最近这半年一直在做基于PHP框架的开发和程序,你那什么单位啊?还需要人不,考虑跳槽了~呵呵

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部