2

I am using jQuery calendar to input dates in the form like

<div class="form-group">
     <label>Valid From:</label>
       <div class="input-group date">
       <div class="input-group-addon">
       <i class="fa fa-calendar"></i>
</div>
<input type="text" tabindex="4" data-date-start-date="0d" class="form-
 control pull-right datepicker" name="valid_from" id="datepicker2" value="
 {{old('valid_from')}}">
 </div>
 @if ($errors->has('valid_from'))
 <span class="has-error" style="color: red">
 <strong>{{ $errors->first('valid_from') }}</strong>
 </span>
 @endif
 </div>

and I am getting the value in the form of 09-03-2018 from form.

Model code and I tried converting it with mutator but it didn't work to model code

use SoftDeletes;
    protected $fillable = 
['name','valid_from','valid_to','city_id','p_limit','is_active','type'];
    protected $dates = [
//        'valid_from',
//        'valid_to',
        'deleted_at'
    ];
//    public function setDateOfBirthAttribute($dates)
//    {
//        $this->attributes['valid_from'] = Carbon::parse($dates);
//        $this->attributes['valid_to'] = Carbon::parse($dates);
//        $this->attributes['deleted_at'] = Carbon::parse($dates);
//    }
//    protected function getDateFormat()
//    {
//        return 'U';
//    }
//    protected function getDateFormat()
//    {
//        return 'd-m-Y ';
//    }
//    public function setFirstNameAttribute($dates)
//    {
//        $this->attributes['valid_from'] = strtotime($dates);
//        $this->attributes['valid_to'] = strtotime($dates);
//        $this->attributes['deleted_at'] = strtotime($dates);
//    }
//    public function getValidTillValueAttribute($date)
//    {
//        return Carbon::now()->toRfc2822String($date);
//    }
//    public function setValidTillValueAttribute($value)
//    {
////        $this->attributes['valid_to'] = 
 Carbon::createFromTimestamp($value);
//        $this->attributes['valid_to'] = strtotime($value);
//        dd($value);
//    }
//    public function setValidFromValueAttribute($value)
//    {
//        dd($value);
////        $this->attributes['valid_from'] = 
 Carbon::createFromTimestamp($value);
//        $this->attributes['valid_from'] = strtotime($value);
//    }

Controller code

public function store(PromotionRequest $request)
    {
        $input = $request->all();
//        return $request->all();
        $date = $request->valid_from;
        $date1 = $request->valid_to;
        $_newDate = strtotime($date);
        $_newDate1 = strtotime($date1);
//        dd($_newDate);
//        dd($_newDate1);
//        return $input;
//        return $_newDate1;
//        return $_newDate;

//        dd($request->all());
//        return $request->$_newDate;
//        return $request->$_newDate1;
        Promotion::create($input,$_newDate,$_newDate1);
//        Promotion::create($input);
//        return redirect('admin/promotion');
    } 

migration code

$table->increments('id');
$table->string('name')->unique();
$table->integer('valid_from');
$table->integer('valid_to');
$table->tinyInteger('is_active')->comment('0 = Not Active, 1 = Active');
$table->tinyInteger('type')->comment('1 = percentage, 2 = in currency');
$table->integer('city_id')->default(1)->comment = "foreign key to cities 
table";
$table->integer('p_limit')->unsigined();
$table->integer('updated_at')->unsigined();
$table->integer('created_at')->unsigined();
$table->integer('deleted_at')->unsigined()->nullable(true);
$table->foreign('city_id')->refrences('id')->on('cities');

I want to convert it into unix_timestamp any help would be really appreciated

2
  • 1
    Carbon is your friend Commented Mar 2, 2018 at 10:40
  • @ThomasMoors i've tried my friend but he's(carbon) not answering. Commented Mar 2, 2018 at 10:52

1 Answer 1

8

You can convert string to date time timestamp using strtotime()

Here is an example

strtotime('09-03-2018');

Another way is to use carbon

Carbon::parse('string')->timestamp;

Also make sure your model has these keys in $fillable array

$fillable = ['your colums'];

In your controller you do this

$input['valid_from'] = strtotime($date);
$input['valid_to'] = strtotime($date1);

Promotion::create($input);

Hope this helps

Sign up to request clarification or add additional context in comments.

7 Comments

where should i be doing that?? actually i've converted it long ago in controller with strtotime but it's not storing in database prolperly
input = $request->all(); // return $request->all(); $date = $request->valid_from; $date1 = $request->valid_to; $_newDate = strtotime($date); $_newDate1 = strtotime($date1); // dd($_newDate); // dd($_newDate1); // return $input; // return $_newDate1; // return $_newDate; // dd($request->all()); // return $request->$_newDate; // return $request->$_newDate1; Promotion::create($input,$_newDate,$_newDate1);
if you want to store it into database then you have to format it accordingly to your database column type
column type in which you want to store ?
i've, it's integer now but only first digit of that converted value is getting save. i thought it maybe due to the lenght of the integer but its 11 already. so theres is no issue in that.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.