Tôi muốn thêm thời gian hệ thống hiện tại vào cơ sở dữ liệu trong khi chèn bản ghi mới vào cơ sở dữ liệu như trong cột "time_created". Hàm time() của PHP không có hỗ trợ trong yii2. Tôi muốn yii2 chức năng thời gian cụ thể sẽ giúp tôi tiết kiệm dấu thời gian hiện tại. Có ai biết????Cách thêm dấu thời gian hiện tại vào cơ sở dữ liệu. Định dạng là gì?
Trả lời
Yii 2 có hành vi đặc biệt cho việc này. Chỉ cần đính kèm nó vào mô hình. Thêm phần này vào mô hình của bạn để behaviors()
phương pháp:
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;
public function behaviors()
{
return [
// Other behaviors
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'time_created',
'updatedAtAttribute' => false,
'value' => new Expression('NOW()'),
],
];
}
Bạn cũng có thể sử dụng Yii2
's formatter
như dưới đây:
Yii::$app->formatter->asTimestamp(date('Y-d-m h:i:s')); //1410488596
Yii::$app->formatter->asDatetime(date('Y-d-m h:i:s')); //Sep 12, 2014, 2:21:56 AM
Có lẽ đây là cũ nhưng nó có thể giúp một số ai khác. Thêm mã bên dưới vào mô hình của bạn. Đảm bảo bạn thay đổi createdAttribute
thành thuộc tính của bạn. Bạn cũng phải bao gồm:
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'entry_date',
'updatedAtAttribute' => false,
'value' => new Expression('NOW()'),
],
];
}
Khác với câu trả lời của tôi như thế nào? – arogachev
@arogachev Vì câu trả lời này dễ đọc hơn và trông hoàn chỉnh hơn bạn. –
Bạn có thể sử dụng yii \ db \ Biểu để thực hiện chức năng SQL
<?php
use yii\db\Expression;
$model->time_created = new Expression('NOW()');
$model->save();
bạn Đơn giản chỉ cần có thể sử dụng date()
chức năng của PHP như - date('Y-m-d H:i:s');
Có một số cách để thêm dấu thời gian, tôi khuyên bạn nên sử dụng dấu thời gian UNIX vì mục đích xử lý múi giờ. Ví dụ: trong các phiên bản Google SQL, bạn không thể thiết lập múi giờ, nhưng bù lại, có nghĩa là bạn sẽ cần phải cập nhật bù đắp hai lần một năm vì thời gian mùa hè/mùa đông. Cho rằng khi ai đó đề cập bạn cũng có thể sử dụng các hành vi:
public function behaviors()
{
return [
[
'class' => AttributeBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => 'entry_date',
],
'value' => function ($event) {
return time();
},
],
];
}
hoặc bạn có thể chỉ đơn giản là chỉ cần thêm trước khi chèn, như $model->entry_date=time();
nhưng như bạn sẽ làm điều này trên mỗi INSERT
sau đó hành vi là sự lựa chọn tốt hơn.
Và tất nhiên nếu bạn muốn đọc ngày định dạng, bạn có thể sử dụng:
\Yii::$app->formatter->asDate($model->entry_date);
Đối asDate định dạng, bạn có thể đọc ở đây: http://www.yiiframework.com/doc-2.0/yii-i18n-formatter.html#asDate()-detail
- 1. So sánh dấu thời gian với thời gian hiện tại từ cơ sở dữ liệu
- 2. Drupal 7 - Cách chèn dấu thời gian unix vào cơ sở dữ liệu
- 3. Cách chèn dấu thời gian vào cơ sở dữ liệu đường ray-cột
- 4. Lưu chuỗi ngày tháng PHP vào cơ sở dữ liệu MySQL làm dấu thời gian
- 5. Chèn dấu thời gian vào cơ sở dữ liệu qua ContentValues
- 6. Cách thêm "ON cập nhật dấu thời gian hiện tại" vào cột bảng hiện tại
- 7. định dạng dấu thời gian sqlite
- 8. Cách chèn dữ liệu vào OpenTSDB (Cơ sở dữ liệu chuỗi thời gian)
- 9. AWS sẽ tương đương với Cơ sở dữ liệu thời gian thực Firebase là gì?
- 10. Thiết kế cơ sở dữ liệu thời gian trong Cassandra
- 11. C# - Định dạng thời gian hiện tại
- 12. Phiên cơ sở dữ liệu là gì?
- 13. Cách thêm dữ liệu hạt giống mới vào cơ sở dữ liệu đường ray hiện có
- 14. Cách thêm dấu thời gian vào TFSBuild.proj?
- 15. Java, cách thay đổi cơ sở dữ liệu hiện tại sang cơ sở dữ liệu khác?
- 16. sqlSave: Ánh xạ dấu thời gian biểu dữ liệu vào dấu thời gian SQL Server
- 17. Sự khác nhau giữa cơ sở dữ liệu thời gian và cơ sở dữ liệu lưu trữ lịch sử là gì?
- 18. JPA - EclipseLink - Cách cấu hình tên giản đồ cơ sở dữ liệu tại thời gian chạy
- 19. Làm thế nào để thêm ASP.NET MVC5 Identity Authentication vào cơ sở dữ liệu hiện tại
- 20. Đường ray - cách thêm dấu thời gian vào mô hình?
- 21. Cách lấy dấu thời gian hiện tại ở định dạng chuỗi trong Java? "yyyy.MM.dd.HH.mm.ss"
- 22. Thêm oAuth vào trang ASP.NET MVC 4 hiện tại với cơ sở dữ liệu thành viên hiện tại
- 23. Định dạng Dấu thời gian trong Java
- 24. Định dạng Dấu thời gian của Sọc
- 25. Kết hợp nhiều cơ sở dữ liệu vào một cơ sở dữ liệu đơn
- 26. Đặt cột dấu thời gian JPA được cơ sở dữ liệu tạo ra?
- 27. Drools lấy dữ kiện từ cơ sở dữ liệu tại thời gian chạy
- 28. Điểm của nhiều Cơ sở dữ liệu Redis là gì?
- 29. Thêm hình ảnh vào cơ sở dữ liệu trong Java
- 30. Bảng xóa MySQL - Cơ sở dữ liệu hiện tại hoặc mọi cơ sở dữ liệu?
Không chắc về của db khác nhưng nếu bạn sử dụng MySQL bạn có thể tự cập nhật cột dấu thời gian, http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html – Alex
Chào mừng bạn đến với StackOverflow! Vui lòng xem ["Câu hỏi có nên bao gồm" thẻ "trong tiêu đề của họ không?"] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), trong đó sự đồng thuận là "không, họ không nên". –