code: private function getPackageTime(PackageInterface $package)
      {
          if (!function_exists('proc_open')) {
              return null;
          }
  
          $path = realpath($this->installationManager->getInstallPath($package));
          $sourceType = $package->getSourceType();
          $datetime = null;
  
          if ($path && in_array($sourceType, array('git', 'hg'))) {
              $sourceRef = $package->getSourceReference() ?: $package->getDistReference();
              switch ($sourceType) {
                  case 'git':
                      GitUtil::cleanEnv();
  
                      if (0 === $this->process->execute('git log -n1 --pretty=%ct '.ProcessExecutor::escape($sourceRef), $output, $path) && preg_match('{^\s*\d+\s*$}', $output)) {
                          $datetime = new \DateTime('@'.trim($output), new \DateTimeZone('UTC'));
                      }
                      break;
  
                  case 'hg':
                      if (0 === $this->process->execute('hg log --template "{date|hgdate}" -r '.ProcessExecutor::escape($sourceRef), $output, $path) && preg_match('{^\s*(\d+)\s*}', $output, $match)) {
                          $datetime = new \DateTime('@'.$match[1], new \DateTimeZone('UTC'));
                      }
                      break;
              }
          }
  
          return $datetime ? $datetime->format(DATE_RFC3339) : null;
      }
docs: Returns the packages's datetime for its source reference.
  
  @param  PackageInterface $package The package to scan.
  @return string|null      The formatted datetime or null if none was found.