-3

现在,我得到的值request2021-06-08 00:31:25.168324格式。我想把它转换成datetime格式2021-06-08。如何转换这个?

 $order['pickup_date']= DateTime::parse($request->input('pickup_date'))->isoFormat('YYYY-MM-DD');

我得到的错误是“给定的数据无效”。

4

3 回答 3

2

碳呢?

Carbon::parse($request->input('pickup_date'))->format('Y-m-d')
于 2021-06-07T16:44:07.113 回答
1

由于您使用的是 Laravel。您可以使用Carbon

\Carbon\Carbon::createFromFormat('Y-m-d H:i:s.u',$request->input('pickup_date'))->format('Y-m-d');

对于您的参考格式缩写

d - The day of the month (from 01 to 31)
D - A textual representation of a day (three letters)
j - The day of the month without leading zeros (1 to 31)
l (lowercase 'L') - A full textual representation of a day
N - The ISO-8601 numeric representation of a day (1 for Monday, 7 for Sunday)
S - The English ordinal suffix for the day of the month (2 characters st, nd, rd or th. Works well with j)
w - A numeric representation of the day (0 for Sunday, 6 for Saturday)
z - The day of the year (from 0 through 365)
W - The ISO-8601 week number of year (weeks starting on Monday)
F - A full textual representation of a month (January through December)
m - A numeric representation of a month (from 01 to 12)
M - A short textual representation of a month (three letters)
n - A numeric representation of a month, without leading zeros (1 to 12)
t - The number of days in the given month
L - Whether it's a leap year (1 if it is a leap year, 0 otherwise)
o - The ISO-8601 year number
Y - A four digit representation of a year
y - A two digit representation of a year
a - Lowercase am or pm
A - Uppercase AM or PM
B - Swatch Internet time (000 to 999)
g - 12-hour format of an hour (1 to 12)
G - 24-hour format of an hour (0 to 23)
h - 12-hour format of an hour (01 to 12)
H - 24-hour format of an hour (00 to 23)
i - Minutes with leading zeros (00 to 59)
s - Seconds, with leading zeros (00 to 59)
u - Microseconds (added in PHP 5.2.2)
e - The timezone identifier (Examples: UTC, GMT, Atlantic/Azores)
I (capital i) - Whether the date is in daylights savings time (1 if Daylight Savings Time, 0 otherwise)
O - Difference to Greenwich time (GMT) in hours (Example: +0100)
P - Difference to Greenwich time (GMT) in hours:minutes (added in PHP 5.1.3)
T - Timezone abbreviations (Examples: EST, MDT)
Z - Timezone offset in seconds. The offset for timezones west of UTC is negative (-43200 to 50400)
c - The ISO-8601 date (e.g. 2013-05-05T16:34:42+00:00)
r - The RFC 2822 formatted date (e.g. Fri, 12 Apr 2013 12:01:05 +0200)
U - The seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)

参考:https ://www.w3schools.com/php/func_date_date_format.asp

于 2021-06-07T16:44:14.787 回答
0

对不起,我真的不明白。

编写干净的代码有什么问题?

为什么不能使用简单的 PHP 函数?

无论您是否在前端使用任何日历/验证输入,后端数据验证都会对您有所帮助。

这是一个简单的 PHP 解决方案,您还可以在其中检查无效数据:

$dateInput = '2021-06-08 00:31:25.168324'; //$request->input('pickup_date')
$date = date_create($dateInput);
// At this point you can test invalid data, provided by user.
if (!$date) {
  return 'Please provide a valid date';
}

$formattedDate = date_format($date, "Y-m-d");
var_dump($formattedDate); // '2021-06-08'
于 2021-06-07T17:01:39.887 回答