Zend_Date: توسيع قيمة عامين من الرقمين إلى 4 أرقام سنة

StackOverflow https://stackoverflow.com/questions/3112220

  •  29-09-2019
  •  | 
  •  

سؤال

لديك تاريخ ميلاد بتنسيق "مم/DD/YY" للأشخاص المولودين في القرن العشرين. أنا أستخدم Zend_Date لتحليلها وتحويل قيمة السلسلة

$date = new Zend_Date();
$logger->info(sprintf('Convert DOB %s -> %s',$dateOfBirth,$date->toString('yyyy-M-dd')));

انا حصلت

2010-06-24T16:55:50+00:00 INFO (6): DOB 9/13/57
2010-06-24T16:55:50+00:00 INFO (6): Convert DOB : 9/13/57 -> 2057-9-13

توقعت

2010-06-24T16:55:50+00:00 INFO (6): Convert 9/13/57 -> 1957-9-13

ماذا ينقصني؟ لا أعتقد أن هذا مرتبط بالعام الحقيقي "Yyyy" / ISO Year "Yyyy" في Zend_Date.

اختراقي الرهيب الحالي

$formattedDate = $date->toString('dd/M').'/19'.$date->toString('YY');
هل كانت مفيدة؟

المحلول

نسخة قصيرة (1 أو 2 رقم) من السنة هي دائما في القرن الحالي. لذلك استخدم:

    $dob = '9/13/57';
    $date = new Zend_Date($dob, 'M/d/yy');
    echo $date->subYear(100)->toString('YYYY-MM-d');

نصائح أخرى

على ما يبدو ، إنه أكثر تعقيدًا قليلاً. وفق هذا الموقع, ، عامين من أرقام أكبر من أو تساوي 70 تصبح 1970-1999 في حين أن أقل من 70 يصبح 2000-2069.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top