Page MenuHomePhorge

PhabricatorSearchDateField.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

PhabricatorSearchDateField.php

<?php
final class PhabricatorSearchDateField
extends PhabricatorSearchField {
protected function newControl() {
return id(new AphrontFormTextControl())
->setPlaceholder(pht('"2022-12-25" or "7 days ago"...'));
}
protected function getValueFromRequest(AphrontRequest $request, $key) {
return $request->getStr($key);
}
public function getValueForQuery($value) {
return $this->parseDateTime($value);
}
protected function validateControlValue($value) {
if (!phutil_nonempty_scalar($value)) {
return;
}
$epoch = $this->parseDateTime($value);
if ($epoch) {
return;
}
$this->addError(
pht('Invalid'),
pht('Date value for "%s" can not be parsed.', $this->getLabel()));
}
protected function parseDateTime($value) {
if (!phutil_nonempty_scalar($value)) {
return null;
}
// If this appears to be an epoch timestamp, just return it unmodified.
// This assumes values like "2016" or "20160101" are "Ymd".
if (is_int($value) || ctype_digit($value)) {
if ((int)$value > 30000000) {
return (int)$value;
}
}
return PhabricatorTime::parseLocalTime($value, $this->getViewer());
}
protected function newConduitParameterType() {
return new ConduitEpochParameterType();
}
}

File Metadata

Mime Type
text/x-php
Expires
Mon, May 12, 2:07 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
123194
Default Alt Text
PhabricatorSearchDateField.php (1 KB)

Event Timeline