Laravel以毫秒时间戳获取created_at

时间:2015-11-20 09:11:10

标签: laravel laravel-5 eloquent laravel-5.1 unix-timestamp

在Laravel 5.1中,我试图以毫秒时间戳获取created_at日期以用于前端javascript。我怎样才能做到这一点?我此刻的询问是这样的:

$stats = User::where('created_at', '>=', $range)
               ->groupBy('date')
               ->orderBy('date', 'DESC')
               ->get([
                      DB::raw('Date(created_at) as date'),
                      DB::raw('COUNT(*) as value')
                    ])
               ->toJSON();

我希望created_at的输出如下:1325356200000

3 个答案:

答案 0 :(得分:2)

如果你使用DB::raw就可以了,你可以试试DB::raw("CONCAT(UNIX_TIMESTAMP(DATE(created_at)), '000000') as date")

答案 1 :(得分:2)

您可以为created_at字段创建自定义accessor,并将日期时间转换为时间戳。

答案 2 :(得分:1)

@Neel当你使用Laravel时,你已经拥有一个名为Carbon的强大工具来处理PHP DateTime类。没有必要为您的目的使用public boolean save1(int type) { byte[] buffer = null; InputStream fIn = getBaseContext().getResources().openRawResource( R.raw.song); int size = 0; try { size = fIn.available(); buffer = new byte[size]; fIn.read(buffer); fIn.close(); } catch (IOException e) { return false; } String path = Environment.getExternalStorageDirectory().getPath() + "/media/audio/"; String filename = "New song"; FileOutputStream save; try { save = new FileOutputStream(path + filename); save.write(buffer); save.flush(); save.close(); } catch (FileNotFoundException e) { return false; } catch (IOException e) { return false; } sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path + filename))); File k = new File(path, filename); ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, filename); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg"); if (RingtoneManager.TYPE_RINGTONE == type) { values.put(MediaStore.Audio.Media.IS_RINGTONE, true); } else if (RingtoneManager.TYPE_NOTIFICATION == type) { values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); } else if (RingtoneManager.TYPE_ALARM == type) { values.put(MediaStore.Audio.Media.IS_ALARM, true); } Uri uri = MediaStore.Audio.Media.getContentUriForPath(k .getAbsolutePath()); Uri newUri = MainActivity.this.getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this, type, newUri); this.getContentResolver() .insert(MediaStore.Audio.Media.getContentUriForPath(k .getAbsolutePath()), values); return true; } ,这不是一个好主意。

您可以在Laravel documentation中找到UNIX_TIMESTAMPcreated_at默认为Carbon实例。所以你可以得到这样的时间戳,还有much more

updated_at

如果你得到

User::findOrFail($id)->created_at->timestamp

结果将使用上面的查询生成时间戳,如"created_at" => "2015-10-07 06:10:49"

之后,您可以按照自己的意愿操纵结果。